Nach langem arbeiten hab ich eine einfach Version von FreeBSD 4.11 auf meinem Libretto am Laufen. Auf Grund meiner Versuche sprang der Kollege “matze” mit auf den Zug auf und mit seinen fundierten Linux und BSD Kenntnissen erzielte er erfolge für die ich als Newbie noch einige Monate gebraucht hätte. Zusammen haben wir dann folgende Anleitung zusammengefasst um jeden die Möglichkeit zu geben seinem Libretto eine FreeBSD 4 zu verpassen

Libretto 100CT

Technische Daten

Prozessor / Bus /RAM

  • Prozessor Intel Pentium 166 MHz MMX / 1.8 V
  • Bus 66 MHz
  • Cache-Speicher Write-Back / 32 KB auf CPU
  • Speicher (RAM) 32 MB EDO / 60 ns / 2.5 V / max. 64 MB

BIOS

  • Typ Flash-EPROM / Plug&Play / APM / ACPI / 512 KB

Grafik

  • Typ NeoMagic MagicGraph 128 XD / PCI / 128 Bit Grafikbeschleuniger
  • Video-RAM 2 MB
  • Bildschirm TFT
  • Bildpunkte 800 x 480 Pixel
  • Pixelgrösse 0.19 x 0.19 mm
  • Diagonale 7.1”
  • Darstellungsbereich 153.6 x 93 mm
  • Farben bis 16 Millionen / 24 Bit
  • Kontrastverhältnis 100:1
  • LCD-Helligkeit (Netzbetrieb) 70 NIT
  • LCD-Helligkeit (Akkubetrieb) 70 NIT

Bildschirmauflösungen

  • Max. intern 24 Bit Farbe 640 x 480 / 85 Hz
  • Max extern 16 Bit Farbe 1024 x 768 / 85 Hz
  • Max extern 24 Bit Farbe 800 x 600 / 85 Hz

Maße und Gewicht

  • Abmessung 210 x 132 x 34 mm
  • Gewicht 910 g

Akku

  • Typ Li-Ion / 10.8 V / 1200 mAh
  • Max. Betriebsdauer 2 h

Netzadapter

  • Typ 100-240 VAC / 50-60 Hz
  • Ausgang 15 V / 2 A
  • Gewicht 180 g

Festplatte

  • Typ Toshiba MK-2109MAT / 2.1 GB / 13 ms / 4200 U/min
  • Schnittstelle E-IDE / AT-kompatibel

Diskettenlaufwerk

  • Typ Extern PCMCIA / 3,5” / 720 KB + 1.44MB / 300 U/min

Sound

  • Am PC Lautsprecher Mono / Mikrofon
  • Typ Yamaha OPL3 SA3 / 16-Bit Stereo / Soundblaster-kompatibel / MIDI

Anschlüsse

  • Am PC Kopfhörer / Mikrofon / PCMCIA Type III / Infrarot / Netzadapter
  • Miniport Replicator (Lieferumfang) Seriell / Parallel (ECP) / PS/2 / Monitor / Netzadapter
  • Mini Card Station (Zubehör) Seriell / Parallel (ECP) / PS/2 / Monitor / PCMCIA Type III / Netzadapter / USB

Installation

Die Installation funktioniert mit FreeBSD 4.11 problemlos über zwei zu erstellende Disketten.

Hinweis: Diese Installationsweise ist mit FreeBSD 5.x nicht mehr möglich, da es hier eine Änderung in der Installationsroutine von sysinstall gab und somit somit bei der Installation nicht mehr automatisch erkannt wird, dass es sich beim Installlationsmedium um ein PCMCIA Device handelt. FreeBSD 5.x fragt somit nicht mehr nach ob das Installationmedium im PCMCIA Slot gegen ein andere Gerät getauscht werden soll. Somit muss man Disklaufwerk und CD-Rom oder NIC gleich von anfang an in den Slots haben.

Diskimages

Zunächst besorgen wir uns die dafür Notwendigen Images:

Windows

Man braucht für Windows natürlich wieder ein extra Tool: fdimage Der Befehl zum Schreiben lautet fdimage.exe kern.flp a:

Linux

dd if=/kern.flp bs=18k of=/dev/fd0

FreeBSD

dd if=floppies/kern.flp of=/dev/rfd0 oder dd if=floppies/kern.flp of=/dev/floppy

Nach dem erfolgreichen erstellen der Disketten gibt es zwei Möglichkeiten zur weitern Installation.

Entweder man verwendet eine PCMCIA Ethernet Karte (z.B. NE2000 kompatibel) zur Installation via FTP, oder man ist im Besitz eines externen CD-ROM Laufwerkes, welches natürlich auch per PCMCIA angeschlossen wird. Da die Softwareauswahl auf den CD’s begrenzt ist und unsere favorisierten Programme gar nicht enthält, empfehle ich die Installation über FTP. Auf den genauen Ablauf der weiteren Installation möchte ich an dieser Stelle nicht weiter eingehen, darüber gibt es bereits genug HowTo’s. Sie verläuft genauso, wie auf anderen Rechnern auch.

Egal welche Installationsmöglichkeit ihr wählt, wenn ihr die im Libretto Hardwaremäßig integrierte Hibernate verwenden wollt müsst ihr am Ender eurer HDD einen unpartitionierten Platz in der Größe eures RAM Speichers lassen. Solltet ihr das nicht tun und Hibernate verwenden könnte es leicht passieren das euer System flöten geht.

Da das kompilieren auf der Libretto nicht wirklich Freude macht, empfehle ich grundlegend die Installation von Packages und nur im Notfall die Ports. Die Packages können nach erfolgreich abgeschlossener Installation problemlos als root per /stand/sysinstall nachinstalliert werden oder auch direkt mittels pkg_add -r name.

Xfree86

Folgende Beispiel Konfiguration bildet später eine Auflösung bei 800x480 Bildpunkten und 60 Hz ab:

Section "ServerLayout"
    Identifier "XFree86 Configured"
    Screen 0 "Screen0" 0 0
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
    RgbPath "/usr/X11R6/lib/X11/rgb"
    ModulePath "/usr/X11R6/lib/modules"
    FontPath "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
    FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath "/usr/X11R6/lib/X11/fonts/CID/"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
    Load "dbe"
    Load "dri"
    Load "extmod"
    Load "glx"
    Load "record"
    Load "xtrap"
    Load "speedo"
    Load "type1"
EndSection

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "keyboard"
    Option "XkbModel" "pc102"
    Option "XkbLayout" "de"
    Option "XkbVariant" "nodeadkeys"
EndSection

Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/sysmouse"
EndSection

Section "Monitor"
    #DisplaySize 160 100 mm
    Identifier "Monitor0"
    VendorName "TOSHIBA"
    ModelName "Libretto TFT"
    HorizSync 26.0 - 35.0
    VertRefresh 60.0 - 85.0
    ModeLine "800x480" 29.59 800 832 944 976 480 490 495 505
    ModeLine "640x480" 24.11 640 672 760 792 480 490 495 505
EndSection

Section "Device"
    Option "overrideValidateMode"
    Identifier "Card0"
    Driver "neomagic"
    VendorName "Neomagic Corporation"
    BoardName "NM2160 [MagicGraph 128XD]"
    BusID "PCI:0:4:0"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "Monitor0"
    DefaultDepth 16
    
    SubSection "Display"
        Viewport 0 0
        Depth 1
    EndSubSection

    SubSection "Display"
        Viewport 0 0
        Depth 4
    EndSubSection

    SubSection "Display"
        Viewport 0 0
        Depth 8
    EndSubSection

    SubSection "Display"
        Viewport 0 0
        Depth 15
    EndSubSection

    SubSection "Display"
        Viewport 0 0
        Depth 16
        Modes "800x480" "640x480"
    EndSubSection

    SubSection "Display"
        Viewport 0 0
        Depth 24
    EndSubSection
EndSection

Externer Monitor

Ich habe noch keine Möglichkeit gefunden, das LCD während dem arbeiten auf einen externen Monitor zu switchen. Einzige Möglichkeit auf einen externen Monitor auszugeben ist, den Monitor schon beim booten einstecken. Dabei wird das LCD allerdings ausgeschaltet.

Sound

Folgende Hardware Einstellungen sind Standard im BIOS:

Sound = EnableWSS I/O Address = 530H
SBPro I/O Address = 220H
Synthesizer I/O Address = 388H
WSS & SBPro & MPU401 IRQ Level = IRQ5
WSS(Play) DMA = Channel 1
SBPro DMA = Same as WSS
Control I/O Address = 370H
MPU401 (MIDI I/F) = 330H</pre>

Es gibt zwei Möglichkeiten, entweder man baut einen neuen Kernel, oder man erzeugt eine separate Konfigurations Datei

Variante 1 (neuer Kernel)

Na dann lass uns mal einen neuen Kernel backen. Voraussetzung ist, dass du die Sourcen in /usr/src installiert hast, was normalerweise der Fall sein sollte.

Sollte das jedoch nicht der Fall sein kannst du dir die Sources wie folgt nachinstallieren. Zuerst rufst du /stand/sysinstall auf und gehst dort auf /configure/distributions/src/sys danach einfach OK auswählen und ein bißchen warten bis alles installiert ist - von da an sollte /usr/src vorhanden sein.

Alles folgende als root ausführen!!

# cd /usr/src/sys/i386/conf# cp GENERIC MYKERNEL
# echo "device pcm0 at isa? port 0x530 irq 5 drq 1 flags 0" >> MYKERNEL

Kernel backen

# config MYKERNEL# cd ../../compile/MYKERNEL
# make depend && make && make install && make clean
# shutdown -r now</pre>

Jetzt sollte unter dmesg ein Device pcm0 auftauchen. Die Ausgabe von cat /dev/sndstat sieht dann so aus:

FreeBSD Audio Driver (newpcm)Installed devices:
pcm0: <OPL3-SAx (YMF719)> at io 0x530 irq 5 drq 1 bufsz 4096 (1p/1r/0v channels duplex)

Nur noch schnell die Devices in /dev erstellen mit: # cd /dev# sh MAKEDEV snd0

Hinweis: Und bitte keine Sound Module beim Systemstart laden!

Variante 2 (Konfigurations-Datei)

  • Kernel vorbereiten

device pcm

Einfach diesen eintrag in eurer neuen Kernel-Config dazuschreiben und den Kernel wie bei Variante 1 beschrieben neu bauen.

  • Konfigurationsdatei /boot/device.hints anpassen
    hint.pcm.0.at="isa"hint.pcm.0.port="0x530"
    hint.pcm.0.irq="5"
    hint.pcm.0.drq="1"
    hint.pcm.0.flags="0x0"</pre>
    
  • Neustart shutdown -r now Jetzt sollte unter dmesg ein Device pcm0 auftauchen. Nur noch schnell die Devices in /dev erstellen mit: # cd /dev# sh MAKEDEV snd0

PowerManagement

APM aktivieren

  • Kernel vorbereiten device apm

Einfach diesen eintrag in eurer neuen Kernel-Config dazuschreiben und den Kernel wie beim Kapitle Sound Variante1 beschrieben neu bauen oder ihr nehmt einfach die Beispiel Kernel-Config - dort ist schon alles drin.

  • Konfigurationsdatei /etc/rc.conf anpassen
    apm_enable="YES"apmd_enable="YES"
    apmd_flags=""</pre>
    
  • Konfigurationsdatei /boot/device.hints anpassen
    hint.acpi.0.disabled="1"hint.apm.0.disabled="0"
    hint.apm.0.flags="0x20"</pre>
    
  • Ausschalten mit automatischem Herunterfahren shutdown -p now

  • Jetzt muss der Benutzer nur noch der Gruppe ‘operator’ hinzugefügt werden: pw usermod <username> -G operator

  • eventuelle Fehler Meldungen

    bei Meldung /dev/apm nicht vorhanden /boot/device.hints überprüfen ob bei hint.apm.0.disabled=”0” steht

IrDA

Die Infrarot Schnittstelle unter dmesg: chip1: <Toshiba Fast Infra Red controller> port 0xffe0-0xffff irq 11 at device 17.0 on pci0

Das Programm birda (pgk_add -r birda), welches für die Kommunikation mit Infrarot-Geräten (Palm) zuständig ist, sollte installiert werden._ Das Syncronisieren eines Palm mit einer UNIX Workstation geht dann z.B. mit dem Programm coldsync (pkg_add -r coldsync).

Diskettenlaufwerk

Das PCMCIA Diskettenlaufwerk des Librettos hat schon mancher Linux-Distribution bei der Installation von Diskette das Leben schwer gemacht. *BSD ist da besser und macht keine größeren Probleme bei der Installation doch bei laufendem System wills noch nicht klappen.

Kernel Config

Hier unsere Kernel-Config, sie ist nicht perfekt und erfüllt auch nicht alle wünsche - also sie ist kein AllHeilMittel. Doch für den Anfang sehr brauchbar und lässt den Libretto in der Standardkonfiguration zum Leben erwachen. Doch für Tipps und Anpassungsvorschläge sind wir immer dankbar.

machine		i386cpu		I586_CPU
ident		libretto
maxusers	10options 	INET			#InterNETworking
options 	INET6			#IPv6 communications protocols
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	UFS_DIRHASH		#Improve performance on big directories
options 	MFS			#Memory Filesystem
options 	MD_ROOT			#MD is a potential root device
options 	NFS			#Network Filesystem
options 	NFS_ROOT		#NFS usable as root device, NFS required
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	CD9660_ROOT		#CD-ROM usable as root, CD9660 required
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=15000	#Delay (in ms) before probing SCSI
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING
options 	ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	AHC_REG_PRETTY_PRINT	# Print register bitfields in debug

# output.  Adds ~128k to driver.
options 	AHD_REG_PRETTY_PRINT	# Print register bitfields in debug

# output.  Adds ~215k to driver.
device		isa
device		eisa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0
device		fd1	at fdc0 drive 1

# ATA and ATAPI devices
device		ata0	at isa? port IO_WD1 irq 14
device		ata1	at isa? port IO_WD2 irq 15
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
device		atapifd			# ATAPI floppy drives
device		atapist			# ATAPI tape drives
options 	ATA_STATIC_ID		#Static device numbering

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12
device		vga0	at isa?

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? flags 0x100

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# PCCARD (PCMCIA) support
device		card
device		pcic0	at isa? irq 0 port 0x3e0 iomem 0xd0000
device		pcic1	at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3
device		sio2	at isa? disable port IO_COM3 irq 5
device		sio3	at isa? disable port IO_COM4 irq 9

# Parallel port
device		ppc0	at isa? irq 7
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer
device		plip		# TCP/IP over parallel
device		ppi		# Parallel port interface device

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device		miibus		# MII bus support

# ISA Ethernet NICs.
# 'device ed' requires 'device miibus'
device		ed0	at isa? disable port 0x280 irq 10 iomem 0xd8000
device		ex
device		ep
device		fe0	at isa? disable port 0x300

# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device		wi

# The probe order of these is presently determined by i386/isa/isa_compat.c.
device		ie0	at isa? disable port 0x300 irq 10 iomem 0xd0000
device		lnc0	at isa? disable port 0x280 irq 10 drq 0
device		cs0	at isa? disable port 0x300
device		sn0	at isa? disable port 0x300 irq 10

# Pseudo devices - the number indicates how many units to allocate.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	sl	1	# Kernel SLIP
pseudo-device	ppp	1	# Kernel PPP
pseudo-device	tun		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
pseudo-device	md		# Memory "disks"
pseudo-device	gif		# IPv6 and IPv4 tunneling
pseudo-device	faith	1	# IPv6-to-IPv4 relaying (translation)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

# USB support
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		usb		# USB Bus (required)
device		ugen		# Generic
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
device		ums		# Mouse
device		uscanner	# Scanners
device		urio		# Diamond Rio MP3 Player

# Sound
device pcm0 at isa? port 0x530 irq 5 drq 1 flags 0

# Power Management
device apm</pre>

Programme die richtig gut laufen<

  • XFCE4 - Desktop Environment Hinweis zur Konfiguration: .xinitrc im Home Verzeichnis der Benutzers anlegen und folgendes einfügen:
    export LC_ALL=de_DE.ISO-8859-15 export LANG=de_DE.ISO-8859-15
    exec startxfce4
    
  • Fluxbox - WindowManager
  • MC-light - Dateimanager nicht nur auf der Konsole
  • aterm - Eine Terminal Emulation als Ersatz für xfterm4
  • Abiword - Textverarbeitung
  • Gnumeric - Tabellenkalkulation (hat leider sehr viele Abhängigkeiten, braucht also Platz auf der Platte)
  • abs - Alternative zu Gnumeric. Ist leider nur in Englisch und kennt nur sein eigenes Datei Format. Aber sehr schnell.
  • Sylpheed-Claws - E-Mail Client
  • CenterICQ - Instant Messanger (geht am Besten im aterm)
  • cvsup-whithout-gui
  • portupgrade
  • libretto-config - Konfiguration des Libretto-BIOS
  • asapm - Batterie Monitor (Der Batterie Monitor von xfce4 arbeitet nur mit ACPI)
  • gnupg - The GNU Privacy Guard
  • gpa - Frontend für gnupg

Installierte Packages

my packages

pkg_add -r portupgradepkg_add -r birda
pkg_add -r sylpheed-claws
pkg_add -r centericq
pkg_add -r links (mit -g startn für GUI)
pkg_add -r xzgv (bildbetrachter)
pkg_add -r emelfm2 (file manager)
pkg_add -r libretto-config
pkg_add -r mp3blaster
pkg_add -r fluxbox-devel
pkg_add -r aterm
pkg_add -r bbapm
pkg_add -r gkrellm2pkg_add -r fluxbg (zuerst fluxbg_conf -> fluxbg)
pkg_add -r display (für das setzen mit fluxbg benötigt)
pkg_add -r fluxconf
pkg_add -r fbdesk
pkg_add -r kdebase