TECHNOLOGY to serve you.

HomeSupportTech InfoSSD/LinuxUser's Guide

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.1.1. Boot
4.1.1.1. From CD-ROM
4.1.1.2. From FD
4.1.1.3. Login
4.1.2. Partitioning by fdisk(8)
4.1.3. Executing sysinst(8)
4.2. OpenBlockS series
4.2.1. Updationg firmware
4.2.2. Boot
4.2.2.1. Login
4.2.3. Configuring network interface
4.2.4. Partitioning by fdisk(8)
4.2.5. Executing sysinst(8)
4.2.6. Note on installation without sysinst(8)
4.2.7. Changing the root device
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:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. 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.
  3. 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
Use the ↑ and ↓ keys to select which entry is highlighted.
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 )
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
Use the ↑ and ↓ keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.
After kernel is loaded, you see the following message to change FD.
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
  • 4.2.2. Boot
  • 4.2.3. Configure network interface
  • 4.2.4. Partitioning by fdisk(8)
  • 4.2.5. Executing sysinst(8)
  • 4.2.6. Note on installation without sysinst(8)
  • 4.2.7. Changing the root device
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 `.'.
To install SSD/Linux to OpenBlockS 200B/200R, you must first update firmware.
Get the following firmware and update it: About how to update firmware, see OpenBlockS 200B/200R User's Manual (in Japanese).
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 route
192.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.255
# route add default gw 192.168.253.1 netmask 0.0.0.0 metric 1
# echo nameserver 192.168.253.8 > /etc/resolv.conf
When you want to use DHCP, add
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/dev
# ./MAKEDEV generic
For a password of root, change it passwd(1), and then copy /etc/passwd and /etc/shadow in /any_mount_point/etc.
# passwd root
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
Prepare /any_mount_point/etc/fstab.

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 /boot
# /usr/mdec/installboot --root-directory=/any_mount_point /dev/hda1
where /usr/mdec/installboot is grub-install(8) itself.
After you install the boot loader, prepare /any_mount_point/boot/menu.lst.

Example of menu.lst
timeout  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 configure
O 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;
        };
};
Back to top