SPARC中如何安装Linux系统

85、Linux m68k和Sun Sparc系统安装指南 本文介绍了在m68k和Sun Sparc平台上安装与配置Linux系统的详细指南。针对m68k平台,重点讲解了Debian和Red Hat两大发行版的支持情况、启动方式、分区与文件系统管理、X Window系统配置及系统重启方法,并提供了相关资源链接。对于Sun Sparc系统,涵盖了支持的硬件系列、系统C库的演进(从a.out到glibc)、安装流程差异以及图形界面X服务器的配置细节,特别是不同显卡和键盘类型的设置方法。文章旨在帮助用户根据各自硬件环境顺利完成Linux部署,并通过注册、邮件列表和新闻组获 阅读详情
  部门机器升级,淘汰下来一批比较古老的机器,其中有一些ultra系列的sparc机型,64M内存,2.1G硬盘,solaris 9已经表示不支持64m内存了,装solaris 8 又实在懒得一一去打patch,何况,那么小的硬盘,装完了solaris 8,已经没有空间可做服务了,solaris 当工作站使用起来不如linux方便。当初使用gentoo的时候,曾经看过它有支持相当多的版本,比如alpha,x86(这个最常用了), amd64,sparc。。。恩,sparc,就是它了。
  
  访问gentoo官方主页,http://www.gentoo.org。最新的2005.0版本正好刚刚释放出来,看来,这次不光是测试sparc下装linux,而且也是测试gentoo新版本的好机会呢。在站点上查阅了一下,官方列出的最低要求:
  
  Sparc 系统 (等一下给出)
  CPU 只支持 sparc64 CPU
  内存 64 MB
  磁盘 1.5 GB (不含交换分区)
  交换分区 至少 256 MB
  
  (注意:以上的交换分区大小,事实上可以缩减成128M,由于担心硬盘不够,我在安装的时候尝试性地只使用了128m交换分区,最后证实是可以胜利安装完成的。)
  
  那么,gentoo支持的sparc系统到底包含sun的哪些系列呢??
  
  o UltraSPARC Sbus based workstations: Ultra1, Ultra2, Ultra1 Creator, Ultra2 Creator
  o UltraSPARC Sbus based servers: Netra i, Enterprise 1, 2, 150
  o UltraSPARC Sbus based large servers: Enterprise 3000, 3500, 4000, 4500, 5000, 6000, 6500, 10000
  o UltraSPARC PCI based board computers: SPARCengine CP1400(1,3), CP1500(1)
   o UltraSPARC PCI based workstations: Ultra30, UltraAXe, UltraAXi, UltraAXmp, Ultra5, Ultra10, Ultra60, Ultra80, SunBlade 100, SunBlade 1000
  o UltraSPARC PCI based servers: Netra X1(2), Netra T series(3), Fire V100, Fire V120, Enterprise 250, 450
  
  查看上表,我们的Ultra1正好还名列其中。。。那好,就让大家跟随天缘一起进入gentoo的sparc之旅吧。
  
   首先是下载2005.0的gentoo光盘,去http://www.gentoo.org/main/en/mirrors.xml 看看,恩,n多的站点。就近找找吧。根据我的测试,在http://mirror.gentoo.gr.jp/ 的下载速度较为理想。
  
   Gentoo的启动光盘分为2种,一种是只有50m左右的mini盘,只起光盘启动和基本工具的作用;另外一种称为universal,自带了 stage1,stage3这些程序包。在普通情形下,如果网络环境较好,那么可以选择下mini盘,然后以依赖网络下载即时编译的方式榨取最高的性能, 但是这里是给老机器作新嫁妆,因此就用universal光盘好了。
  
  在http: //mirror.gentoo.gr.jp/releases/sparc/2005.0/sparc64/installcd/install-sparc64-universal-2005.0.iso 这里,下载了光盘镜象,接着用 http://mirror.gentoo.gr.jp/releases/sparc/2005.0/sparc64/installcd/install-sparc64-universal-2005.0.iso.md5 提供的md5码进行光盘校验,看看是不是下载得正确,之后就可以进行刻盘了。在进行md5校验的时候,在linux等操作系统下可以用md5sum命令, 而在win下可以使用winmd5等工具。在天缘第一次下载的时候,是用ie直接下载,结果出现了校验码不吻合的情形,后来用下载工具进行下载才正常,请 各位留意,否则用有错误的盘进行后续操作会相当困绕的。
  
  恩,光盘刻录好后,就可以丢到光驱里了。 重新启动ultra 1 ,狂按stop+A 键,直到出现ok提示符号后,输入
  
  boot cdrom
  
  之后出现一个boot提示符号
  
  // Welcome to Gentoo SPARC Linux //
  //     Version 2005.0     //
  boot:
  
  在此直接回车,会给一个提示,告诉让输入gentoo-2.4启动,或者gentoo-2.4-smp 以支持多cpu,对于ultra1 这样的老机器,直接输入gentoo-2.4,然后回车吧。
  
  接下来屏幕一黑,左上方出现一个抱着太阳的小企鹅,开始了启动工作。
  
  恩。。。等待,等待,大约过了30秒,启动完成,停留在livecd linux#的提示符号处,至此,光盘启动完成,我们可以开始安装工作了。
  
  对unix类操作系统而言,没有网络等于是半个残废,我们还是先把网络配置起来吧。
  
  首先,看看机器上的网卡认出否?
  
  #ifconfig –a
  eth0   Link encap:Ethernet HWaddr 08:00:20:82:C4:DF
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  RX packets:4278 errors:0 dropped:0 overruns:0 frame:0
  TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:260108 (254.0 Kb) TX bytes:10758 (10.5 Kb)
  Interrupt:64
  
  eth1   Link encap:Ethernet HWaddr 08:00:20:82:C4:DF
  BROADCAST MULTICAST MTU:1500 Metric:1
  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
  Interrupt:224
  
  lo    Link encap:Local Loopback
  inet addr:127.0.0.1 Mask:255.0.0.0
  UP LOOPBACK RUNNING MTU:16436 Metric:1
  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:0
  RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
  
  恩,看来真挺顺利的,ultra1上带的2块网卡都已经认出了,那么,接下来配置网卡吧。
  
  在官方的说明上,建议使用netsetup eth0 这样的形式来配置,但天缘在实做的时候,进入选“有线网卡”,“无线网卡”那里,随便选哪一个,之后点ok,都是直接退出?!不管了,还是手工设置吧。
  
  恩,首先是设置网卡的ip地址,使用ifconfig命令
  
  ifconfig eth0 broadcast <广播地址> netmask <掩码地址> up
  
  注意,这里的广播地址是根据掩码地址来算的,用sun的一般都是比较专业的网管了,这些小问题就不用再提了。另外最后的up一定记得加,否则网卡是不处于活跃状态的。
  
  之后可以ping同段的机器看看,是否已经能够ping得通了??
  
  恩,现在解决出口的问题,也就是加上一条默认的出口路由,或者说网关
  
  route add default gw <网关的ip>
  
  现在,如果您在外网有服务器或者workstation,那么可以尝试着ping看看,或者用links2 来访问看看,如果正常,那么接下来就是加上dns服务器的地址了。
  
  nano –w /etc/resolv.conf
  之后按照
  nameserver 的格式来添加dns解析地址,比如
  
  nameserver 202.98.96.68
  
   nano 是gentoo安装过程中默认使用的编辑工具,很简单好用,和dos下的edit相当类似,关于保存和退出看下面的提示即可,当然,您也可以使用vi (但等一下后面的设置中,由于是chroot到新系统,会默认只有nano编辑器,而且由于我们硬盘相当小,所以尽量选择少安装软件,因此熟悉使用 nano吧)
  
  好了,之后按 ctrl+x,会提示是否要保存,按y,回车保存成功。现在可以尝试着用links2 命令来访问看看域名解析情形了。
  
  如果上述配置中出现问题,可以随时使用ifconfig 和route命令来检查设置。
  
  到此,网络配置完成。如果你跟我一样觉得机房太冷,想在温暖的办公室里边喝茶边安装,那么就把ssh服务启动吧:
  #/etc/init.d/sshd start
  好了,走出冷冷的机房,回到办公室里,边喝茶边进行下面的安装吧。
  
  Ssh上我们的ultra1,然后继续安装
  
  现在,开始进行分区,使用fdisk命令
  fdisk /dev/sda
  
  因为ultra1使用的是scsi硬盘,又挂在第一位置,因此设备编号是sda
  
  先规划一下分区方案:
  按照官方的说法,
  
  /分区放最开始,小于2g,/usr 至少2g,/var至少1g,还不算swap和其他所用的,我们可怜的2.1g硬盘看来是不够用了,因为此机器不用来做什么关键服务,只是废物利用,天缘尝试着进行了一种比较简单的分区方式。
  /boot  50M (在做完后,我df看分区的时候,发现此分区只使用了9%,因此即使保留一个backup,也只需要大约20~30M就足够了,各位在实做的时候,此分区30M左右就可以了)
  交换分区 128M
  /    其他所有空间
  
   注意:对服务器而言,这样的分区方式严格说来是相当不可取的,在硬盘空间足够的情形下,请尽量为记录log,存放数据,存放临时文件的挂载点单独划分区 域,这里的做法是因为硬盘太小的权益之计,各位朋友在利用此文安装规划工作用服务器的时候,如果硬盘空间允许,请一定不要按照此划分方式进行。
  
  接下来,进入交互界面,可以先查看分区
  p
  会列出原来的分区,由于原来装的是solaris 8 ,分区自然是sun格式的,
  接着,用
  d命令,将原来的分区全部删除吧
  输入d,会提示(1-8)
  按照刚才p显示的编号,进行删除
  
  当所有分区都删除完了后,再次使用p命令,确认已经删除完毕
  
  接着使用s命令
  
  出来如下提示:
  
  Drive type
  ?  auto configure
  0  custom (with hardware detected defaults)
  a  Quantum ProDrive 80S
  b  Quantum ProDrive 105S
  c  CDC Wren IV 94171-344
  d  IBM DPES-31080
  e  IBM DORS-32160
  f  IBM DNES-318350
  g  SEAGATE ST34371
  h  SUN0104
  i  SUN0207
  j  SUN0327
  k  SUN0340
  l  SUN0424
  m  SUN0535
  n  SUN0669
  o  SUN1.0G
  p  SUN1.05
  q  SUN1.3G
  r  SUN2.1G
  s  IOMEGA Jaz
  
  接着下面提示
  Select type (? for auto, 0 for custom):
  在这里,选择?或者r都可以,不用象官方说明上一样用0自己设置(因为等一下我们会删除掉分区来手工分的)
  
  恩,之后系统会自动分配完成,然后p看一下,生成了3个分区
  接着,用d命令,将第1,2个分区删除掉,只保留第3个分区(必须保留哦)
  Command (m for help): d
  Partition number (1-3): 1
  
  Command (m for help): d
  Partition number (1-3): 2
  
  请用p查看,确认有且只有下面一行:
  /dev/sda3       0   2733  2077080  5 Whole disk
  
  好了,现在开始真正地划分我们所要的空间,首先是/boot分区
  使用n命令
  
  Command (m for help): n
  Partition number (1-8): 1
  First cylinder (0-8635): (直接回车)
  Last cylinder or +size or +sizeM or +sizeK (0-8635, default 8635): +50M
  
  注意,如上面提示的,这里其实用+30M就可以了
  
  接下来是swap交换分区
  
  Command (m for help): n
  Partition number (1-8): 2
  First cylinder (64-8635): (输入64)
  Last cylinder or +size or +sizeM or +sizeK (0-8635, default 8635): +128M
  
  接着用t命令来修改此分区为swap格式
  
  Command (m for help): t
  Partition number (1-8): 2 (这里我们是要把第2个分区设置为swap,所以是2)
  Hex code (type L to list codes): L (查看一下相应分区的代码)
  
  0 Empty      4 SunOS usr    7 SunOS var    83 Linux native
  1 Boot      5 Whole disk    8 SunOS home   8e Linux LVM
  2 SunOS root   6 SunOS stand   82 Linux swap   fd Linux raid auto
  3 SunOS swap
  Hex code (type L to list codes): 82 (按照上面的提示,82表示linux的swap分区,所以输入82)
  Changed system type of partition 2 to 82 (Linux swap)
  
  最后,划分最大的/分区
  
  Command (m for help): n
  Partition number (1-8): 4
  First cylinder (228-2733): 228
  Last cylinder or +size or +sizeM or +sizeK (228-2733, default 2733): (直接回车)
  Using default value 2733
  
  到此,划分完毕,用p命令看看
  Command (m for help): p
  
  Disk /dev/sda (Sun disk label): 19 heads, 80 sectors, 2733 cylinders
  Units = cylinders of 1520 * 512 bytes
  
  Device Flag  Start    End  Blocks  Id System
  /dev/sda1       0    64   48640  83 Linux native
  /dev/sda2 u     64    228  124640  82 Linux swap
  /dev/sda3       0   2733  2077080  5 Whole disk
  /dev/sda4      228   2733  1903800  83 Linux native
  
  以上的操作,都没有真正写入到分区表里,所以可以随意操作,用m命令可以查看帮助,即使错得一塌糊涂了,也可以直接用q命令在不保存的情形下退出。直到您规划满意了,可以使用w命令写入分区表,至此,分区完成。
  
  接下来,是格式化分区
  
  mke2fs /dev/sda1 //将第一分区(boot分区)格式化为ext2格式,这也是linux默认的格式
  mke2fs -j /dev/sda4 //将第四分区(root分区)格式化为ext3格式,记住,由于sparc的特殊性,我们的sda3是whole disk,因此不要习惯性地想着只有3个分区,因此把sda3给格式化掉了。
  
  创建交换分区
  
  mkswap /dev/sda2
  
  现在就可以把交换分区挂上使用了
  
  swapon /dev/sda2
  
  烦琐的设置基本完成了,接下来请打起精神来,迎接正式开始安装工作
  
  首先是mount上我们新系统中的/分区和/boot分区
  
  mount –t ext3 /dev/sda4 /mnt/gentoo
  
  在它上面创建一个boot目录,以方便挂上第一分区(/boot分区)
  
  mkdir /mnt/gentoo/boot
  
  接着把新系统的boot分区挂上
  
  mount /dev/sda1 /mnt/gentoo
  
  挂上后,就开始安装stage包了
  
   从2005.0版本的gentoo开始,stage包从原来的3种减为了2种,只有stage1和stage3了,关于2者的区别,stage1是一个 最小化工具包,安装它后,可以最大程度上的自定义系统设置,而且在编译的时候可以最大程度地针对自己的机器进行优化,缺点则是耗时相当漫长,一般大致需要 1周左右的时间才能设置妥当,而stage3则是预先编译好了一些软件包可供使用,当然为了通用性,在编译参数等方面就相对比较保守,优化程度不够。在 此,我选择的是stage3,因为硬盘实在太小,而且没必要在ultra1这样的老机器上折腾太多。值得一提的是,在安装前,记得使用date命令校准时 间。
  
  cd /mnt/gentoo #记得这个目录么?就是未来新系统的根目录
  tar –vxjpf /mnt/cdrom/stages/stage3-sparc64-2005.0.tar.bz2
  这里会把相当多的程序/设置文件cp到相应位置,时间会消耗地比较久,因此远程安装的你可以找点事情先忙乎着。
  
  恩,copy完了stage3的内容后,接着就是要cp portage包了,portage是gentoo的程序包管理机制,类似redhat的rpm,freebsd的ports方式,它的便利,等一下您就能体会到了。
  tar –vxjf /mnt/cdrom/snapshots/portage-20050303.tar.bz2 –C /mnt/gentoo/usr
  
  这里也挺久的,所以前面推荐各位远程安装,就可以找点事来先忙着,在完成此步骤后,天缘用df命令查看了一下,/mnt/gentoo空间用去 49%
  
  然后是把源文件全部cp过去,因为gentoo的即时编译机制,所以在编译其他软件软件包的时候,可能会用到这些代码的
  
  mkdir /mnt/gentoo/usr/portage/distfiles
  cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/
  
  这一步也相当漫长的,当完成时,df的结果是/mnt/gentoo用去了65%
  
  上面的几步是不是让您快睡着了? Ok,久违的动手时间到了
  
  现在先把新系统中/etc/make.conf的参数改了,简单来说,这个文件设置了gcc编译的时候的参数,以及选用网络安装的时候使用的sync地址和软件包下载地址。
  
  nano –w /mnt/gentoo/etc/make.conf
  
  在最后添加以下几行
  
  MAKEOPTS="j2"
  GENTOO_MIRRORS="http://gentoo.gg3.net/ http://mirror.gentoo.gr.jp/"
  SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
  
  注意,熟悉gcc参数的朋友可能会打算修改CFLAGS,CHOST ,CXXFLAGS的值,但官方文档只建议使用stage1的用户设置,我们使用的是stage3,所以还是保持吧。
  
  下面,准备进入新操作系统咯
  
  mount –t proc none /mnt/gentoo/proc
  proc文件系统是内核信息的镜象,可以通过它即时查看到很多内核程序的设置和使用情形,并且还可以即时修改,怎么样?就这一点就够爱死unix系统了,比windows的注册表每次都要重新启动/注销生效方便多了吧。。。
  
  cp –L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
  将我们刚才设置好的dns解析文件cp过去
  
  chroot /mnt/gentoo /bin/bash
  env-update
  source /etc/profile
  
  以上三句是设置 /mnt/gentoo目录为根目录,并更新系统设置
  
  接着设置时区,由于天缘使用本地时间,因此
  ln –sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime
  把本地时间设置为重庆时间,顺便把rc.conf里的时间设置也修改掉
  nano –w /etc/rc.conf
  修改
  CLOCK="UTC"
  为
  CLOCK="local"
  
  接下来,就是配置内核了,关于配置内核的文章到处有,这里我简单提一下关键和不同的地方吧
  
  首先是下载内核代码
  
  emerge sparc-sources
  
  之后就会自动下载并且安装代码到/usr/src下,我写此文的时候,内核版本是2.4.29,并做好一个/usr/src/linux的连接
  
  接着就是编译内核了
  cd /usr/src/linux
  make menuconfig
  
  恩,大体上与在x86上编译没什么区别,只把需要特别留意需要开启的地方写出来吧
  
  Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers
  //开启扩展代码的支持,否则有的选项根本看不到呢
  
  File systems --->
  [*] Virtual memory file system support (former shm fs)
  <*> Ext3 journalling file system support
  <*> Second extended fs support
  [*] /proc file system support
  [*] /dev file system support (EXPERIMENTAL)
  [ ]  Automatically mount at boot
   //注意,依照官方的文档,是需要选自动mount的,但是这里我在选择了/dev后,重新启动的时候报告了错误,即使我emerge devfsd后依然如此,因此我只有把 [ ]  Automatically mount at boot去掉,这样的话开机会提示一个警告信息,但是使用上无碍,还请其他朋友指点此困惑。
  
  Console drivers --->
  Frame-buffer support --->
  [*] SBUS and UPA framebuffers
  [*] Creator/Creator3D support
  [*] CGsix (GX,TurboGX) support
  //上面是对SBUS/UPA的支持,记得选上
  
  Misc Linux/SPARC drivers --->
  [*] /dev/openprom device support
  上面是对OBP的支持
  
  SCSI support --->
  SCSI low-level drivers --->
  <*> Sparc ESP Scsi Driver
  <*> PTI Qlogic, ISP Driver
  <*> SYM53C8XX Version 2 SCSI support
  
  //scsi卡支持,上面的几种各自针对特定的型号,为了config文件的通用性,我是都选上了的
  
  Network device support --->
  Ethernet (10 or 100MBit) --->
  <*> Sun LANCE support
  <*> Sun Happy Meal 10/100baseT support
  <*> DECchip Tulip (dc21x4x) PCI support
  Ethernet (1000Mbit) --->
  <*> Broadcom Tigon3 support
  
  //各种型号的网卡支持的,也是为了通用性,我都选了,其实ultra1上根本没1000m卡的,天缘这里的sun fire上才有吧。
  
  注意,最好只把重要的编译进核心,而把其他的相关部分编译成模块就行了,确保内核文件别超过2.5M为好,天缘在文章最后会给出我使用的.config文件,各位如果想偷懒保存下来后,直接使用就行了。
  
  恩,保存后退出,接着就是内核编译了。。。
  make dep && make clean vmlinux image modules modules_install
  之后。。。可以忙乎自己的事情去了,天缘是晚上编译,第2天早晨去看的结果,具体完成时间也办法告诉大家,估计在30分钟到2个小时吧。
  
  好,假设您跟我一样够好运气,顺利编译完成了(此时/空间用了大致78%左右,呵呵)
  接着就是把核心文件cp到/boot分区去
  
  cp arch/sparc64/boot/image /boot/kernel-2.4.9
  cp System.map /boot
  配置文件也一起cp一份丢过去吧
  cp .config /boot/config-2.4.29 /boot
  
  到这里,内核编译就完成了,接着就是最后的配置系统设置了
  
  首先是设置/etc/fstab 文件,linux系统后,是根据这个文件来加载分区的
  
  我的设置如下(注释已去掉):
  
  ultra1 root # cat /etc/fstab
  /dev/sda1      /boot  ext2  defaults,noatime  1 2
  #加载/boot分区,使用ext2格式,并且不记录对文件的访问时间(减少写入次数)
  /dev/sda4      /    ext3  noatime     0 1
  #加载/分区,ext3格式,不记录对文件的访问时间
  
  /dev/sda2      none  swap  sw    0 0
  #交换分区
  /dev/cdroms/cdrom0  /mnt/cdrom iso9660  noauto,user  0 0
  #cdrom加载,非自动加载
  #/dev/fd0    /mnt/floppy  auto   noauto      0 0
  #软驱,由于我编译内核的时候去掉了对软驱的支持,所以就把这行屏蔽了
  
  none       /proc    proc   defaults     0 0
  #proc分区加载,它的作用前面提到了
  
  none       /dev/shm  tmpfs   defaults     0 0
  #用内存+硬盘虚拟出一块区域来存放文件,tmpfs格式
  none       /proc/openprom openpromfs  defaults  0 0
  #这行是sparc系统必须添加的
  
  #此处我没有添加usb的支持,因为我内核里禁止了usb的相关模块
  
  以上行中,都是defaults,而不是default,天缘自己错过几次了,提醒各位留心哦。
  
  接下来设置主机名
  echo ultra1 > /etc/hostname
  
  接着设置本域的名字
  echo xx.edu.cn > /etc/dnsdomainname
  
  如果用nis的,还要设置nis domain
  echo nis.xxx > /etc/nisdomainname
  
  把domainname添加到开机启动里
  rc-update add domainname default
  
  rc-update 一般常用的有 add ,del, -s 几个选项,可以对/etc/init.d/下存在的脚本选择是否加入到启动阶段(boot或者default里,boot部分比default阶段早)
  
  然后是设置网络
  
  注意提醒一点,以stage3方式安装的时候,已经安装了ifconfig命令,而如果是stage1,则需要下载emerge net-tools ,否则启动的时候会因为没有ifconfig命令而无法使用网络哦
  nano –w /etc/conf.d/net
  
  该文件的说明非常清晰,天缘使用的是固定ip方式,所以配置如下
  iface_eth0="我的ip地址 broadcast 广播地址 netmask 掩码"
  gateway="eth0/网关ip"
  
  接着同样用rc-update命令让开机时候就执行启动网卡的脚本
  rc-update add net.eth0 default
  
  然后通过修改/etc/hosts改主机名
  nano –w /etc/hosts
  127.0.0.1 localhost ultra1
  
  修改安全设置,允许root直接登陆
  nano –w /etc/securetty
  echo ‘tts/0’ >> /etc/securetty
  
  最后的收尾工作就是把系统日志记录工具和crond服务,档案索引服务工具装上了
  安装日志工具
  emerge syslog-ng
  rc-update add syslog-ng default
  
  安装cron服务
  emerge vixie-cron
  rc-update add vixie-cron default
  
  安装档案索引服务
  emerge slocate
  
  最后一步,就是安装引导的开机程序,silo了,它的全名是Sparc Imporved boot Loader,和lilo或者grub的作用很象
  emerge silo
  
  然后设置选项,我是按照grub的习惯,将配置文件放到了/boot区
  nano –w /boot/silo.conf
  
  # Example of how can be silo.conf set up
  partition = 1 #这里是/boot分区的分区号
  root = /dev/sda4 #这里是/分区的位置
  timeout = 10 #等待时间,注意以0.1秒为单位的呢
  #password = __#密码,这里没要
  #restricted
  image = /boot/kernel-2.4.29 #引导文件的位置
  label = linux #标题名
  
  接着让配置生效
  /sbin/silo –C /boot/silo.conf
  
  最后退出chroot环境,准备重新启动
  
  exit
  cd /
  sync
  umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
  reboot
  
  激动人心的时刻终于来到了,如果您一路无误,那么就可以成功地启动服务器了,如果有误,那么请根据提示,然后用光盘启动后,进入chroot环境再进行修改。
  
  后记:根据对linux对sparc系统支持地查看,发现对fire等高端系列,对t3存储,以及对lvc的支持都已经有不错的效果了,各位网管朋友如果某些时候需要针对linux下的一些服务,可以尝试着在中端服务器上调试看看。
86、Linux系统硬件配置与启动选项详解 本文详细介绍了Linux系统在SPARC架构下的硬件配置与启动选项,涵盖显示器时序设置、SILO和LILO引导加载程序的使用、磁盘分区特殊要求、串行控制台安装方法以及UltraSPARC系统中32位用户空间的兼容性问题。同时提供了LILO配置示例、常见问题解决方案及性能优化建议,帮助用户深入理解并有效配置Linux系统的底层运行环境。 阅读详情

相关推荐

sparc-linux-gcc

sparc-linux--gcc,x86下sparc交叉编译工具链 已经测试可用,可以进行kernel,busybox的交叉编译。

hsf传输文件到linux,x86 平台上的 Linux到 SPARC 平台上的 Solaris的说明

x86平台上的Linux到SPARC平台上的Solaris的说明关于本次移植的说明由于目前没有Solaris开发环境,移植过程,主要是参考本文档的说明。具体是对函数调用、字节序列、数据类型、内存对齐等方面进行移植,然后等开发环境准备好后,再进行测试确认。由于一些问题需要对solaris和SPARC系统环境进行测试,才能够明确系统性能、特点。希望尽快提供Solaris环境。 下面是通过查阅资料获得的...

weixin_31826879的博客 592

基于MediaPipe的智能俯卧撑计数与姿势矫正系统

在现代健身和体能训练中,俯卧撑是最基础也是最有效的自重训练动作之一。然而,许多人在进行俯卧撑训练时常常存在姿势不正确、计数不准确等问题。本文将介绍如何利用计算机视觉和姿态估计技术,开发一个智能的俯卧撑计数与姿势矫正系统。

qq_36224726的博客 916

sparc-linux-gcc math.h 调用,无法使用叮进行交叉编译为SPARC

因此情况如下:我需要能够从Linux机器(在Ubuntu上,它的价值)编译二进制文件,这些文件能够从SPARC服务器运行。我试图编译程序是非常简单的:无法使用叮进行交叉编译为SPARC#include #include int main() {printf("Testing the SPARC program...");return EXIT_SUCCESS;}我已经尝试了多种不同的编译线来得到它...

weixin_28849929的博客 399

WPS占用C盘空间解决方案与优化技巧

办公软件在长期使用过程中会产生大量缓存和历史文件,这些文件往往隐藏在系统目录中,导致磁盘空间被无声占用。以WPS为例,其版本历史备份、云同步缓存和模板库是主要空间占用源。通过分析文件存储机制,可以定位到具体的缓存路径,如AppData目录下的Kingsoft文件夹。针对这一问题,有效的解决方案包括手动清理、自动化脚本和注册表优化。对于需要持续监控的场景,可以结合PowerShell脚本和任务计划实现自动化管理。在实际应用中,这些技术不仅适用于WPS,也可迁移到其他办公软件的空间优化中,是每位IT运维人员和高

weixin_30788239的博客 458

利用CiteSpace实现知网专利文献的高效计量与可视化分析

本文详细介绍了如何利用CiteSpace软件对中国知网(CNKI)的专利文献进行高效的文献计量与可视化分析。文章提供了从数据获取、格式转换、参数设置到图谱解读的完整工作流,旨在帮助研究者快速掌握该工具,从而洞察技术领域的研究热点、核心机构、学者合作网络及发展趋势,提升专利情报分析效率。

weixin_28520495的博客 293

SPARC中如何安装Linux系统(2)(转)

SPARC中如何安装Linux系统(2)(转)   接下来,是格式化分区   mke2fs /dev/sda1 //将第一分区(boot分区)格式化为ext2格式,这也是linux默认的格式   mke2fs -j /de...

cuemes08808的博客 291

VIVADO & VITIS 报错记录

问题详情:使用BD用DMA上传少量数据,根据ILA监测到的AXI总线数据正常,VALID信号和READY信号都正常,但是在PS端的cache缓冲区示数为0,打印为0。可能是因为print和printf混用导致。解决方案:修改缓冲区的对齐参数。

Mulun_Zhu的博客 715

构建基本的嵌入式Linux根文件系统

构建基本的嵌入式Linux根文件系统 其实在去年8月份我做系统移植时就构建好了一个可以用的根文件系统,但是那时是跟着别人的《Linux全线移植文档》做的。有些东西我也不清楚,只是跟着做,做出来能用就了事了,没有深究其中的规范,以及文件系统中哪些要,哪些不要。 趁着今年过年的几天假期,我移植重新移植了U-Boot1.3.1和Linux2.6.24到S3C2410及S3C2440后,我想好好的看看...

weixin_34109408的博客 146

.ipynb文件深度解析:从JSON结构到Jupyter Notebook高效使用指南

在Python开发与数据处理领域,交互式编程正成为探索数据与验证思路的高效方式。Jupyter Notebook作为最流行的交互式环境之一,其默认文件格式.ipynb本质是一个基于JSON的文本文件,内部通过单元格组织代码、说明文字与运行结果。理解其JSON结构,不仅有助于掌握Notebook的存储原理,更能为文件损坏修复、版本控制与自动化转换提供基础。依托对单元格类型、魔法命令及输出可视化的熟练运用,数据分析和数据可视化流程可以变得更为流畅。同时,借助VS Code、nbconvert等工具,开发者能将.

weixin_28839629的博客 350

allegro 约束管理Constraint Manager(一)

介绍Cadence allegro 约束管理器CM的使用方法。

weixin_38975819的博客 8716

linux sub减法指令出错,sparc的指令的一些总结

source html:http://linux.chinaunix.net/bbs/archiver/tid-914376.htmlSPARC是CPU指令集架构的一种,其设计的目标是优化的编译和易用的流水线硬件执行。SPARC指令集有以下主要特点:1. 线性的32位地址空间2. 精简的指令格式所有指令都是32位宽和以32为分界对齐排列的。只有3个基本指令的格式--它们是非统一的操作数位置和寄存器...

weixin_30320081的博客 1135

华为OD机考双机位C卷 - 螺旋数字矩阵 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 数字螺旋矩阵(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 3217

SPARC中如何安装Linux系统(1)(转)

SPARC中如何安装Linux系统(1)(转)   部门机器升级,淘汰下来一批比较古老的机器,其中有一些ultra系列的sparc机型,64M内存,2.1G硬盘,solaris 9已经表示不支持64m内存了,装solaris ...

cuemes08808的博客 469

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站。

代码讲故事 6487

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

关于mysql数据库支持_MySQL数据库所支持的操作系统_MySQL

MySQL数据库所支持的操作系统:我们使用GNU Autoconf,因此将MySQL移植到所有使用Posix线程和C++编译器的现代系统是可能的。(要求服务器支持线程。如果只是编译客户端代码,则只需要C++编译器)。我们主要在Linux(SuSE和Red Hat)、FreeBSD和Sun Solaris(版本8和9)上使用并开发本软件。已经报告MySQL可以在下列操作系统/线程包的组合上成功地进行...

weixin_31978735的博客 758

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

如何在Limbo虚拟机上安装Windows和Linux系统:终极完整指南

Limbo是一款基于QEMU的Android平台虚拟机软件,能够让你的Android设备变身为一台功能完整的虚拟计算机。这款强大的Android虚拟机支持x86、ARM、PowerPC和SPARC等多种架构的模拟,让你能够在手机上运行Windows、Linux等操作系统。本文将为你提供详细的Limbo虚拟机安装配置教程,从基础设置到系统安装,一步步教你如何在Android设备上创建虚拟机环境。

gitblog_00216的博客 1371

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JMF安装需求

Download JMF 2.1.1e Software <!-- DO NOT CHANGE THIS CODE UNLESS IT IS REALLY, REALLY NECESSSARY!!-->Hardware Requirements 166 MHz Pentium, 160 MHz PowerPC, or 166 MHz UltraSparc

llxwj的专栏 917

Android上的Limbo虚拟机终极指南:如何在移动设备上运行Windows和Linux系统

Limbo是一款基于QEMU的Android平台虚拟机软件,它能够将你的Android设备转变为一台功能完整的虚拟计算机。这款强大的Android虚拟机支持x86、ARM、PowerPC和SPARC等多种架构模拟,让你能够在手机上运行Windows、Linux等操作系统,为移动设备带来了前所未有的虚拟化能力。 ## 📱 项目概述与核心价值 ### 什么是Limbo虚拟机? Limbo是一个

gitblog_00920的博客 1060

如何在Android手机上运行Windows和Linux系统:Limbo虚拟机终极指南

还在为无法在手机上测试不同操作系统而烦恼吗?想要随时随地运行Windows程序却苦于没有PC?Limbo虚拟机正是为你解决这些痛点的终极方案!这款基于QEMU的Android虚拟机软件,能够让你的手机瞬间变身为一台功能完整的虚拟计算机,支持x86、ARM、PowerPC和SPARC等多种架构的模拟。无论你是开发者需要测试跨平台应用,还是普通用户想在手机上体验Windows系统,Limbo都能轻松实

gitblog_00890的博客 995

oracle11g各版本下载地址

7个压缩包说明 Linux-x86-64_1of7.zip database安装介质 Linux-x86-64_2of7.zip database安装介质 Linux-x86-64_3of7.zip grid安装介质...

clhljaa02293633的博客 842

MySQL能够运行于多种操作系统平台_快速的掌握可以运行MySQL的操作系统

我们使用GNU Autoconf,因此将MySQL移植到所有使用Posix线程和C++编译器的现代系统是可能的。(要求服务器支持线程。如果只是编译客户端代码,则只需要C++编译器)。我们主要在Linux(SuSE和Red Hat)、FreeBSD和Sun Solaris(版本8和9)上使用并开发本软件。已经报告MySQL可以在下列操作系统/线程包的组合上成功地进行编译。注意,对于很多操作系统,原生...

weixin_35089515的博客 1898

JDK 1.6.0_41 下载

Java SE Development Kit 6u41 Product / File Description File Size Download password Linux x86 65.43 MB jdk-6u41-linux-i586-rpm.bin 2c4q Linux x86 68.45 MB jdk-6u41-linux-i586.bin ar4h Linu...

风自扬 2715

3步掌握Limbo虚拟机:Android上的专业级系统模拟器终极指南

在移动设备上运行完整的操作系统?这听起来像是科幻小说里的情节,但通过**Limbo虚拟机**,这已成为现实。Limbo是一款基于QEMU的Android平台虚拟机软件,能够让你的Android设备变身为一台功能完整的虚拟计算机,支持x86、ARM、PowerPC和SPARC等多种架构的系统模拟。无论你是想测试不同操作系统、学习系统原理,还是需要在移动设备上运行特定软件环境,Limbo都能提供专业级

gitblog_00016的博客 520

sunV490能装linux系统?

各位,最近小弟公司刚下架了一台sun V490的机器,由于某种需要,需在此服务器上安装linux系统,可以在ok模式下用光盘启动,欢迎信息能够出现:welcome to Debian&hellip;&hellip;,但接下就在控制台上最后显示的信息是 'Booting Linux&hellip;&hellip;,一直停在这里,不知道怎么弄,我...

weixin_34185512的博客 109

jre-8u20-linux网盘,JDK1.8和JRE1.8所有版本国内网盘下载,省得大家还要去官网注册...

Linux x86 RPM Package121.92 MBjdk-8u261-linux-i586.rpm(访问码:6py8)Linux x86 Compressed Archive136.81 MBjdk-8u261-linux-i586.tar.gz(访问码:b86w)Linux x64 RPM Package121.53 MBjdk-8u261-linux-x64.rpm(访问码:qg6u...

weixin_34377037的博客 1085
上一篇: tar命令使用
下一篇: 各类unix和linux密码丢失解决方法
nmdd
博客等级 码龄22年 3粉丝 0原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值