Debian GNU/kFreeBSD compilare il kernel

 

Come compilare il kernel in Debian GNU/kFreeBSD?, col metodo Debian o con quello FreeBsd? Diciamo che per quelli come me che usano prevalentemente Debian, all'inizio si trovano un pò spaesati, forse per la troppa facilità 🙂 ,ma questo è normale quando ci si avvicina ad un qualcosa che non conosci bene e devi imparare. Comunque il mio sistema è:

edmond@GnuKfreeBsd:~$ uname -a
GNU/kFreeBSD GnuKfreeBsd 8.1-1-686-smp #0 Tue Aug 17 23:24:32 CEST 2010 i686 i386 Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz GNU/kFreeBSD

per iniziare la compilazione dobbiamo avere un pò di strumenti quindi:

# apt-get build-dep kfreebsd-8

poi:

# apt-get source kfreebsd-8

# cd kfreebsd-8-8.1

andare nel percorso del file .config della nostra architettura:

esempio:

/home/edmond/kfreebsd-8-8.1/debian/arch/i386/686-smp.config

ed effettuare i cambiamenti.

step finale:

# dpkg-buildpackage opzione_di_compilazione

esempio:

# dpkg-buildpackage -B -uc

fare riferimento al man dpkg-buildpackage

Debian GNU/kFreeBSD read-only file system error

 

Reinstallando Debian GNU/kFreeBSD mi sono ritrovato con alcuni problemi che prima non ho mai avuto, primo su tutti l'impossibilità di scrivere la partizione ufs da Debian. Ho ricompilato il kernel in Debian Lenny, Squeeze, e Sid ma la partizione contenente Debian GNU/kFreeBSD era sempre in solo lettura. Arrivato a questo punto l'unica certezza che avevo è che  ho, e che il problema risiede in qualche errore nell'installazione di Debian GNU/kFreeBSD e nel filesystem. Raccontata così sembra una cosa stupida, banale, ma quando non capisci dov'è il problema e fai tantissimi tentativi di reinstallazione,  alla fine non hai più idee, però a volte capita che ti si accende una lampadina e fai un tentativo che all'apparenza ti sembra inutile. Il comando che ho sempre dato e che inspiegabilmente non mi funziona più è:

# mount -t ufs -o rw,ufstype=ufs2,nodev,nosuid /dev/sdaX /mnt

quello che funziona adesso è:

# mount -t ufs -o remount,rw,ufstype=ufs2,nodev,nosuid /dev/sdaX /mnt

bisogna anche prestare molta attenzione alla masterizzazione del cd in quanto molte volte ci sono degli errori, che compromettono il buon esito dell'installazione, e con il tempo che ci vuole ed i problemi che si incontrano non è proprio il caso.

ps: ed i problemi continuano 😉

update: confermo che il problema della non scrittura sul filesystem ufs dipende da un qualcosa andato male in fase d'installazione…….cosa… ancora non lo so!

update: il problema riguarda il filesystem che è corrotto.

Debian GNU/kFreeBSD problemi al boot

Dopo gli aggiornamenti fatti un paio di giorni fa sulla mia Debian GNU/kFreeBSD, mi sono ritrovato con alcuni problemi, tra cui alcuni nuovi ed altri che gia conoscevo. Il primo problema abbastanza grave riguardava l'impossibilita' di usare la tastiera al login, di conseguenza il sistema era inutilizzabile non avendo modo di loggarsi o di passare in tty1. Ho fatto diversi tentativi compreso controllare xorg.conf montando la partizione da Debian Sid, ma tutto risultava in ordine e la tastiera rimaneva sempre bloccata. A questo punto ho avuto un intuizione (diciamo pure culo), nella schermata di login sono andato in Azioni-Eseguire il selettore XDMCP ho usato la tastiera, e una volta ritornato alla schermata di login la tastiera si era sbloccata. Questa procedura bisogna farla ad ogni avvio per il momento. Il secondo problema riguarda alcuni processi che portano le cpu al 100%, di conseguenza anche qui il sistema e' inutilizzabile in quanto non si riesce nemmeno ad aprire il terminale per conoscere i processi e killarli. La soluzione e' di passare in tty1 ed usare il comando top per identificare i processi e terminarli, dopo di che' aggiornare il sistema:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo reboot

Dopo gli aggiornamenti sembrerebbe che il problema riguardante alcuni processi che stressano la cpu sono stati risolti, ma il condizionale e' d'obbligo dato che piu' volte il problema si e' ripresentato. Al momento il problema della tastiera rimane, ma col procedimento spiegato sopra la mia/nostra Debian GNU/kFreeBSD e' perfettamente utilizzabile 🙂

Debian GNU/kFreeBSD errore MatchIsMouse

Non aggiornavo Debian GNU/kFreeBSD da 10 giorni e quindi mi sono trovato con un bel po di pacchetti da aggiornare, conoscendo come vanno queste cose, con così tanti aggiornamenti, ero quasi certo che qualcosa sarebbe successo. ed infatti,  quando riavvio mi ritrovo con il server X che non parte, ed il fallimento di:

X -configure

leggendo il log di xorg, mi diceva che c'era un problema con 10-mouse.conf in /usr/share/X11/xorg.conf.d.

infatti:

MatchIsMouse "on"

non c'entra nulla e va cancellato, quindi:

nano /usr/share/X11/xorg.conf.d/10-mouse-conf

quindi va modificato da così:

Section "InputClass"
    Identifier "mouse catchall"
    MatchIsMouse "on"
    Driver "mouse"
EndSection

a così:

Section "InputClass"
    Identifier "mouse catchall"
    Driver "mouse"
EndSection

dopo di chè bisogna ricordarsi di aggiungere in /etc/X11/xorg.conf:

Section "ServerFlags"
        Option "AllowEmptyInput" "No"
        Option "AutoAddDevices" "No"
EndSection

 a questo punto sarà tutto risolto 😉

Mount ext2fs filesystems da Debian GNU/kFreeBSD

 

 

Oramai è un po di tempo che sto seguendo lo sviluppo di Debian GNU/kFreeBSD, con la speranza che vengano fatti velocemente un po di passi avanti, dato che credo di essere arrivato ad un bivio, e cioè, mi sta succedendo quello che un bel po di anni fa mi ha portato ad abbandonare windows per Linux, e ad innamorarmi. Questa insoddisfazione che mi attanaglia, mi sta portando, forse, dal mondo Linux a quello BSD, ma questo è un discorso che forse… non affronterò mai. Tornando in tema, vediamo come accedere alle partizioni Linux da Debian GNU/kFreeBSD. Diciamo subito che non ci sono magheggi da fare dato che il supporto ext2fs è gia presente nel kernel, quindi, per conoscere tutte le nostre partizioni:

$ ls /dev/|grep ^ad

nel mio caso:

edmond@DebianGNUkFreeBSD:~$ ls /dev/|grep ^ad
ad0
ad0s1
ad0s2
ad0s3
ad0s5
ad0s6
ad0s7
ad0s8
ad0s9
ad3
ad3s1
ad3s2
ad3s5

una volta identificata la partizione che vogliamo montare, basta un:

# mount -t ext2fs /dev/ad0s6 /mnt

(Update) Installare Debian GNU/kFreeBSD

 

 

Questa guida è un aggiornamento a Installare Debian GNU/kFreeBSD step by step fatta precedentemente, poichè mi sono accorto che alcune cose che con me hanno funzionato adesso non funzionano più, e quindi questo aggiornamento serve a quelle persone che si sono cimentate nell'installazione senza riuscirci, per colpa di vari errori con il debian-installer. Quindi sommando queste due guide cercherò di farne almeno una buona :). La base da cui partire è sempre questa guida, ma quando si arriva al punto di scegliere tra Stable-Squeeze-Sid, bisogna scegliere Squeeze, poiche se si sceglie Sid si incorre in un errore già nell'installazione base. Proseguiamo fino al punto in cui ci viene chiesto cosa installare, e scegliamo solo il Sistema Standard:

quindi niente interfaccia grafica per il momento altrimenti incorriamo in dei problemi legati a mono-runtime. Una volta finita l'installazione avviamo dalla nostra distribuzione abituale e montiamo la partizione con Debian GNU/kFreeBSD:

mount -t ufs -o ro,ufstype=ufs2,nodev,nosuid /dev/sdaX /mnt

entriamo quindi in /mnt/boot/grub ed andiamo a copiare il menuentry che si trova in grub.cfg e lo incolliamo nel nostro /etc/grub.d/40_custom, quindi subito dopo update-grub. A questo punto siamo pronti a riavviare ed accedere su Debian GNU/kFreeBSD. Dopo il logini dato che non abbiamo interfaccia grafica siamo pronti ad installarla con:

# apt-get install gnome-desktop-environment

così facendo non abbiamo problemi con mono, dato che non lo installiamo. Adesso dobbiamo creare e configurare Xorg.

# X -configure

# mv /root/xorg.conf.new /etc/X11/xorg.conf

ma questo solamente non basta:

# nano /etc/X11/xorg.conf

ed aggiungiamo alla fine questo:

Section "ServerFlags"
        Option "AllowEmptyInput" "No"
        Option "AutoAddDevices" "No"
EndSection

dopo di chè controllare anche la parte riguardante il mouse poichè bisogna inserire il Device esatto, nel mio caso il mouse Logitech, Inc. MX-1000 Cordless Mouse Receiver è identificato come /dev/ums0:

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/ums0"
    Option        "ZAxisMapping" "4 5 6 7"

per caricare il modulo per la mia scheda audio intel:

# kldload snd_hda

Adesso siamo pronti a provare Debian GNU/kFreeBSD e a modificarla a nostro piacimento, tenendo presente che siamo solo all'inizio e quindi tante cose ancora non funzionano, o non sono presenti.

Scrittura filesystem UFS con Debian

 

 

Questa guida nasce dopo l'installazione di Debian GNU/kFreeBSD, e quindi dalla necessità di dover scrivere dall'interno della mia Debian Sid il filesystem ufs. Al momento mi trovavo nella situazione solamente di lettura e montavo il filesystem ufs con il comando:

mount -t ufs -o ro,ufstype=ufs2,nodev,nosuid /dev/sdaX /mnt

e quando cercavo di scrivere con il comando:

mount -t ufs -o rw,ufstype=ufs2,nodev,nosuid /dev/sdX /mnt

mi restituiva il seguente errore:

debianbox:/home/edmond# mount -t ufs -o rw,ufstype=ufs2,nodev,nosuid /dev/sda9 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sda9,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog – try
       dmesg | tail  or so

debianbox:/home/edmond# dmesg | tail -n 1
[ 6931.531458] ufs was compiled with read-only support, can't be mounted as read-write

quindi non potevo scrivere il filesystem ufs in quanto il kernel era stato compilato con l'opzione di solo lettura. A questo punto ho deciso di ricompilare il kernel anche se è considerato “dangereous/experimental”:

sudo apt-get install build-essential bin86 kernel-package libncurses5 libncurses5-dev fakeroot module-init-tools

# cd /usr/src

# uname -r

# apt-get install linux-source-2.6.32

# bzip2 -dc linux-source-2.6.32.tar.bz2 |tar xf -

# ln -sf linux-source-2.6.32 linux

# cd linux

# cp /boot/config-2.6.32-trunk-686 .config

# make menuconfig

spostari nelle sezioni File systems  —> Miscellaneous filesystems  scegliere UFS file system write support (DANGEROUS) e poi salvare. A questo punto siamo pronti per compilare:

io ho due cpu, quindi:

# CONCURRENCY_LEVEL=2 make-kpkg --initrd --append-to-version=-ufs kernel-image kernel-headers

al completamento siamo pronti ad installare il kernel-header ed il kernel-image creati con:

# dpkg -i tutti_e_due_i_kernel

riavviamo e proviamo il nuovo kernel, se nel caso ci troviamo di fronte ad un kernel panic, il motivo è legato al fatto che non trova l'initrd, quindi risolviamo con:

# cd /usr/src

#  update-initramfs -c -k nome_kernel -t

 

Conclusioni:

Devo dire che sono due giorni che provo a scrivere nella partizione freebsd ed al momento non ho riscontrato nessun problema 🙂

Installare Debian GNU/kFreeBSD step by step

 

 

Questa guida può essere utile a chi vuole provare Debian GNU/kFreeBSD, ovvero "un port che consiste di uno spazio utente GNU che usa la libreria C GNU e un kernel FreeBSD sottostante, abbinati con il normale insieme di pacchetti Debian". Sinceramente ho fatto molte prove d'installazione, sia su VirtualBox che su hard disk, e dopo molteplici tentativi sono riuscito ad avere una box con DebianGNU/kFreeBSD funzionante. I problemi principalmente derivano dal debian-installer che nel mio caso falliva spesso e volentieri, poi con la mini.iso del 20100210-11:20 è andato tutto ok, di seguito i link per il download   kfreebsd-amd64 e kfreebsd-i386. Di seguito indicherò solamente i passi secondo me importanti, dato che comunque il debian-installer è semplice ed intuitivo.

Installazione:

Una volta avviata l'installazione ci appare questa immagine:

premere Go Back, per tornare alla pagina principale e selezioniamo Change debconf priority

e selezioniamo medium:

a questo punto proseguiamo con l'installazione, e quindi con la configurazione della rete non facendo caso alla voce em0 (eth0) interfaccia sconosciuta, poichè la riconosce, e quando ci chiede di scegliere un mirror, scegliamo Sid:

l'installazione prosegue fino a quando ci chiede quale kernel installare, e naturalmente scegliamo quello più recente. Se tutto è andato a buon fine si arriva all'installazione di Grub, e qui bisogna fare alcune considerazioni, a secondo di quale strada scegliamo, o meglio di quale versione di Grub abbiamo gia installato nel nostro sistema. Nel mio caso avendo Debian Sid la versione è Grub-pc_1.98~20100128-1.1_i386 e quindi va benissimo, per chi usa un altra distribuzione che ha la versione di Grub inferiore, gli conviene aggiornare in quanto in un dual boot, non riesce a volte ad avviare il kernel freebsd (a me è successo questo). Chiaramente quanto scritto sopra è valido se il debian-installer non riesce ad installare Grub, oppure nell'eventualità che bisogna ripristinarlo da un livecd., quindi di conseguenza la versione di Grub è quella precedente. Comunque manualmente  per un dual boot da inserire sulla propria Distro in /etc/grub.d/40_custom la seguente stringa seguita da un update-grub:

menuentry "Debian GNU/kFreeBSD" {
    insmod ufs2
    set root=(hd0,8)
    echo            Loading kernel of FreeBSD 8.0-1-686 ...
    kfreebsd        /boot/kfreebsd-8.0-1-686.gz
    set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad0s8
    set kFreeBSD.vfs.root.mountfrom.options=rw
}

considerando che la mia installazione e  nella partizione /dev/sda8.

Una volta avviato il sistema non dovrebbero esserci problemi, ma nel caso non funzionasse il mouse, premere Ctrl-alt-F1:

cd /root

X -configure

e poi:

cp xorg.conf.new /etc/X11/xorg.conf

Per montare il filesystem ufs da linux:

mount -t ufs -o ro,ufstype=ufs2,nodev,nosuid /dev/sda8 /mnt

stringa eventualmente da inserire in /etc/fstab:

/dev/sda8 /mnt      ufs auto,ro,ufstype=ufs2,nodev,nosuid   0 0

 

Installazione su VirtualBox:

Per quanto riguarda l'installazione su VirtualBox non ci sono problemi, l'unica cosa a cui bisogna prestare attenzione è su un paio di cosette. Nella creazione di una nuova macchina virtuale scegliamo come sistema operativo BSD e come versione FreeBSD. Nella configurazione della rete scegliamo come scheda la Intel PRO/1000 MT Desktop o la  PCnet-FAST III connessa con bridge. Durante l'installazione scegliere come kernel il 486.

Guida in continuo aggiornamento 🙂

  1. update