SSD/Linux - User's Guide
Japanese | English
Table of Contents
- 0. What is SSD/Linux
- 1. Licence
- 2. Support
- 3. Specification
- 3.1. System requirements
- 3.2. Basic software
- 4. Installation
- 4.1. PC/AT compatible machine
- 4.2. OpenBlockS series
- 5. Miscellaneous configuration
- 6. IPv6
- 6.1. IPv4/IPv6 dual bind
- 6.2. Configuring IPv6 over IPv4 tunnel
0. What is SSD/Linux
The distribution SSD/Linux is a named after its place of development, Sotokanda in Tokyo, in imitation of BSD (Berkeley Software Distribution).
It is a BSD-like Linux distribution as the name indicates.
SSD/Linux is not a distribution for desk top users but for small servers or system integraters to customize the OpenBlockS series (to create your own FlashROM or CF image).
Main features
- Support for IPv6 (USAGI IPv6 Protocol stack).
- Compact design with necessary and sufficientry binaries for server use.
- Source code tree to execute BSD likely `bmake build' or `bmake release'.
- BSD like configuration. Main configuration is in /etc/rc.conf.
- Crunched Binary is implemented (only for PC/AT compatible machine).
- Cross building for OpenBlockS series under i386.
- GUI based configuration tool is not given.
1. Licence
Copyright © 2002-2004 Plat'Home CO., Ltd. . All rights reserved.
Conditions and the no-warranty notice below apply to this software except software which has its own conditions and the no-warranty notice.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
This software is provided by the author "as is" and any expressed or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
2. Support
SSD/Linux is only for sale in combination with Plat'Home products.
We only offer support for SSD/Linux if used in combination with our hardware.
If you have questions, please send them to support@plathome.co.jp.
If you use SSD/Linux with other hardware than officially supported, you do so at your own risk.
3. Specification
- 3.1. System requirements
- PC/AT compatible machine
- Intel i486 CPU or faster
- 8MB RAM
- 350MB of free hard disk space
- VGA compatible video adapter
- OpenBlockS series
- OpenBlockS 266, 200B, 200R
- 350MB of free hard disk space
- 3.2. Basic software
- 0.3
- kernel 2.4.26 and usagi-stable-release 5
- glibc 2.3.3
- gcc 3.3.4
- grub 0.95 (only for PC/AT compatible machine)
- 0.2-STABLE
- kernel 2.4.20 and usagi-stable-release 4.1
- glibc 2.3.1
- gcc 3.2.3
- grub 0.94 (only for PC/AT compatible machine)
4. Installation(Errata)
- 4.1. PC/AT compatible machine
- To install to PC/AT compatible machine, follow these steps:
- 4.1.1. Boot from CDROM or FD
4.1.2. Partitioning by fdisk(8)
4.1.3. Executing sysinst(8)
We can choose a installation media, CDROM or FTP Server in sysinst(8).
Henceforth we call the former CDROM installation and the latter Network installation.
A kernel used during installation is the identical kernel installed.
Avarable SCSI and NIC devices are the following ones if you do not rebuild kernel:
SCSI : AIC7xxx, NCR53C8xx, DC390T
NIC : Intel EtherExpress-Pro 100, Realtech 8139 - 4.1.1. Boot
- 4.1.1.1. From CDROM
- When you boot from CDROM, get a ISO image from here.
After booting from CDROM, GRUB boot loader is loaded and you see the following menu.
Check `Boot from CD' is selected and press [RETURN] key, then kernel and root file system are loaded and SSD/Linux boots.GRUB version 0.95 ( 638K lower / 261111K upper memory )SSD/Linux Ver.0.3 kernel 2.4.26 Install Boot from CD SSD/Linux Ver.0.3 kernel 2.4.26 Install Boot from floppy
SSD/Linux Ver.0.3 kernel 2.4.26 Install Boot from net
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line. - 4.1.1.2. From FD
- When you boot from FD, use the following two FD images:
To create installation FD's on Windows format FD's and use rawrite.exe program.
(available from ftp://ftp.netbsd.org/pub/NetBSD/NetBSD- く version > /i386/installation/misc/ or mirror sites)
On Linux use dd command as follows.
# dd if=boot.fs of=/dev/fd0 bs=36b
After booting with boot.fs, GRUB boot loader is loaded and you see the following menu.
Check `Boot from floppy' is selected and press [RETURN] key, then kernel is loaded.GRUB version 0.95 ( 638K lower / 261111K upper memory )After kernel is loaded, you see the following message to change FD.SSD/Linux Ver.0.3 kernel 2.4.26 Install Boot from CD SSD/Linux Ver.0.3 kernel 2.4.26 Install Boot from floppy SSD/Linux Ver.0.3 kernel 2.4.26 Install Boot from net
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.
Insert ints.fs and press [RETURN] key, then root file system is loaded and SSD/Linux boots.Insert instfs floppy disk and type any key. - 4.1.1.3. Login
- Log in as `root' who does not have a password yet. (Press [RETURN] key.)
SSD/Linux Ver.0.3 kernel 2.4.26
Install instruction
Step.1 Login 'root'.
Step.2 Run 'fdisk' and setup disk partition.
Step.3 Run 'sysinst'
login: root
Password:
- 4.1.2. Partitioning by fdisk(8)
- Define partitions by fdisk(8). See manpages etc. for how to use fdisk(8).
- 4.1.3. Executing sysinst(8)
- Execute sysinst(8) and follow the menu to install.
About sysinst(8) see `How to use sysinst(8)'. - 4.2. OpenBlockS series
- To install to OpenBlockS series, follow these steps:
- 4.2.1 Updating firmware
- Firmware for OpenBlockS 200B/200R products is not compatible to firmware for SSD/Linux.
- Difference for versions of kernel or glibc.
- Difference for files, /etc/rc etc., or structure of directories used at booting.
- Out put message at booting to a serial console.
- After halted, LED displays `8' and `.' alternately and does only `.'.
Get the following firmware and update it:- zImage.initrd.treeboot
- zImage.initrd.treeboot-product (with Web based configuration tool)
In OpenBlockS 266 that SSD/Linux have been installed, updated firmware to fix security holes. - 4.2.2. Boot
- After firmware updating is completed, execute `flashcfg -s /dev/null' to restore the default configuration, and then shutdown.
Boot by pulling and inserting AC adapter.
As mentioned above since firmware for OpenBlockS 200B/200R products is not compatible to firmware for SSD/Linux, the system cannot boot normally if you do not restore the default configuration.
If you shutdown without executing `flashcfg -s /dev/null', boot in the default configuration with pushing INIT button until LED displays `1'.
In OpenBlockS series when you boot from initrd (initial RAM disk), user configuration saved by flashcfg(8) is restored.
If you boot with pushing INIT button, the default configuration is restored.
In OpenBlockS 266 that SSD/Linux is installed, please boot usually. - 4.2.2.1. Login
- Log in as `root'. The initial password is `root'.
As described in 4.2.2. Boot execute flashcfg(8) as follows.Thu Jul 11 18:35:07
ssd-linux login: root
Password:
SSD/Linux 0.3/2.4.26 #4 Fri Aug 20 10:55:37 JST 2004
No mail.
# flashcfg -s /etc/flashcfg
- 4.2.3. Configuring network interface
- Configuration files of SSD/Linux are in imitation of NetBSD.
To use network interfaces, edit the following three files with vi(1), save configuration by flashcfg(8), and the reboot.
/etc/ifconfig.eth0 or /etc/ifconfig.eth1
parameters (command line arguments) given to ifconfig(8), /etc/ifconfig.eth0 for eth0 and /etc/ifconfig.eth1 for eth1.
inet 192.168.253.254 netmask 255.255.255.0 broadcast 192.168.253.255
/etc/mygate
IP address of the default route192.168.253.1
/etc/resolv.conf
Information for DNS.nameserver 192.168.253.8
Of course you may configure by ifconfig(8) or route(8) interactively as follows.# ifconfig eth0 inet 192.168.253.254 netmask 255.255.255.0 broadcast 192.168.255When you want to use DHCP, add
# route add default gw 192.168.253.1 netmask 0.0.0.0 metric 1
# echo nameserver 192.168.253.8 > /etc/resolv.conf
dhclient=YES dhclient_flags="eth0"
to /etc/rc.conf, save the configuration by flashcfg(8), and then reboot, or execute dhclient(8) to get network configuration from DHCP Server as follows.# dhclient eth0
- 4.2.4. Partitioning by fdisk(8)
- Execute fdisk(8) to define partitions.
About how to use fdisk(8) see a manpage etc.
Note that in OpenBlockS series the root partition must be in /dev/hda1. - 4.2.5. Executing sysinst(8)
- Execute sysinst(8) and follow the menu to install.
About sysinst(8) see How to use sysinst(8). - 4.2.6. Note on installation without sysinst(8)
- If you install interactively without sysinst(8), note in the following.
Create device files in /any_mount_point/dev by MAKEDEV script.# cd /any_mount_point/devFor a password of root, change it passwd(1), and then copy /etc/passwd and /etc/shadow in /any_mount_point/etc.
# ./MAKEDEV generic
# passwd rootPrepare /any_mount_point/etc/fstab.
Set root passwd
Are you sure [y/N] ? y
Enter new UNIX password: RootPassword
Retype new UNIX password: RootPassword
# cp -p /etc/passwd /any_mount_point/etc
# cp -p /etc/shadow /any_mount_point/etc
Example of fstab/dev/hda1 / ext2 defaults 1 1 /dev/hda2 swap swap defaults 0 0 none /proc proc defaults 0 0 none /dev/pts devpts gid=4,mode=620 0 0
For i386 install GRUB boot loader.# ln -s /any_mount_point/boot /bootwhere /usr/mdec/installboot is grub-install(8) itself.
# /usr/mdec/installboot --root-directory=/any_mount_point /dev/hda1
After you install the boot loader, prepare /any_mount_point/boot/menu.lst.
Example of menu.lsttimeout 30 default 0 fallback 1 # title SSD Linux root (hd0,0) kernel vmlinuz root=/dev/hda1 # title SSD Linux FDD boot root (fd0) kernel bzImage root=/dev/ram pause Insert instfs floppy disk and type any key. initrd /initrd.fs.gz
About GNU grub see Grub Home Page. - 4.2.7. Changing the root device
- Change the root device from initrd to harddisk by flashcfg(8).
# flashcfg -c harddisk
5. Miscellaneous configuration
Booting scripts (/etc/rc etc.) of SSD/Linux are in imitation of NetBSD 1.4.
SSD/Linux's init(8) reads /etc/rc.sysinit first but not /etc/rc in accordance with /etc/inittab.
/etc/rc.conf
In SSD/Linux configurations for network or daemons executed at booting are done in /etc/rc.conf as under NetBSD or FreeBSD.
Configuration of network interfaces, the default route, and the host name is as follows.
ifconfig_eth0="inet 192.168.253.254 netmask 255.255.255.0 broadcast 192.168.253.255" defaultroute="192.168.253.1" hostname="ssdlinux"
You may configure these parameters in the following files instead of /etc/rc.conf.
/etc/ifconfig.ethN
parameters (command line arguments) given to ifconfig(8), /etc/ifconfig.eth0 for eth0, /etc/ifconfig.eth1 for eth1, and so on.
inet 192.168.253.254 netmask 255.255.255.0 broadcast 192.168.253.255
/etc/myname
host name
ssdlinux
/etc/mygate
IP address of the default route
192.168.253.1
If you configure `do_contrib_rc=YES' in /etc/rc.conf, rc.local and netstart.local in /usr/contrib/etc are executed.
This is for compatibility with the Web based configuration tool of OpenBlockS series.
For other paramestes see the default values in /etc/defaults/rc.conf.
/etc/inetd.conf
libwrap is built in inetd(8) of SSD/Linux.
Access is controlled by /etc/hosts.allow or /etc/hosts.deny.
About configuring protocols (tcp, tcp4, tcp6, udp, udp4, and udp6) see 6. IPv6.
/etc/mail/sendmail.cf
If you create .cf by m4 macro in /usr/share/sendmail/cf/cf, configure OSTYPE ssdlinux but not linux as follows.
divert(-1) divert(0)dnl VERSIONID(`$Id: users.html.en,v 1.32 2004/08/28 06:24:15 yamagata Exp $') OSTYPE(ssdlinux)dnl DOMAIN(generic)dnl FEATURE(`mailertable', ` hash /etc/mail/mailertable') FEATURE(`access_db', ` hash -T<TMPF> /etc/mail/access') FEATURE(`no_default_msa') DAEMON_OPTIONS(`Name=MTA-v6, Family=inet6, address=::') MAILER(local)dnl
About IPv6 see 6. IPv6.
6. IPv6
- In SSD/Linux IPv6 Protocol Stack of USAGI Project is implemented.
It is not included in the default firmware of OpenBlockS 266. - 6.1. IPv4/IPv6 dual bind
- For IPv4/IPv6 dual bind there are limitations now as follows.
inetd(8)
Since dual bind is not supported, the latter(tcp6 in ex.) is not binded with the following configuration.ftp stream tcp4 nowait root /usr/libexec/ftpd ftpd ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd
If you configure only tcp6 or udp6 in /etc/inetd.conf, connections are established with IPv4 as mapped ipv4.
If you configure tcp or udp (tcp4 or udp4), only with IPv4.
Connection only with IPv6 cannot be established.
sshd(8)
If you configure Port and ListenAddress in /etc/ssh/sshd_config explicitly, sshd works with IPv6, and with IPv4 as mapped ipv4 such as inetd.
named(8)
If you configure `listen-on-v6 port 53 { any; }; to options{} in /etc/namedb/named.conf, named works with IPv6.
sendmail(8)
If you configureO DaemonPortOptions=Name=MTA-v4, Family=inet, address=0.0.0.0 O DaemonPortOptions=Name=MTA-v6, Family=inet6, address=::
in /etc/mail/sendmail.cf, an error (`daemon MTA-v6: problem creating SMTP socket') occurs and sendmail cannot be executed.
Comment out MTA-v4 to send and receive with both IPv4 and IPv6 as follows.#O DaemonPortOptions=Name=MTA-v4, Family=inet, address=0.0.0.0 O DaemonPortOptions=Name=MTA-v6, Family=inet6, address=::
- 6.2. Configuring IPv6 over IPv4 tunnel
- Configure IPv6 address with specifying IPv6 prefix and local address to ifconfig_eth0= in /etc/rc.conf.
Specify `router' to ip6mode=.ifconfig_eth0="add XXXX:XXXX:XXXX:XXXX:YYYY:YYYY:YYYY:YYYY/64" ip6mode=router
where XXXX:XXXX:XXXX:XXXX is prefix and YYYY:YYYY:YYYY:YYYY is local address.
Configure IPv6 over IPv4 tunnel in /etc/rc.local.ip tunnel add sit1 mode sit remote XXX.XXX.XXX.XXX local YYY.YYY.YYY.YYY ifconfig sit1 up route -A inet6 add default dev sit1
where XXX.XXX.XXX.XXX is a remote IPv4 address and YYY.YYY.YYY.YYY is a local IPv4 address.
If you execute radvd(8) which advertise IPv6 prefix to other hosts, configure `radvd=YES' in /etc/rc.conf and prepare /etc/radvd.conf as follows.interface eth0 { AdvSendAdvert on; prefix XXXX:XXXX:XXXX:XXXX::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };