Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Hallo,

Bij de jaarlijkse opkuis van mijn werkplaats heb ik nog een oude (1993) Mitak laptop gevonden. Ik wou dit beestje een tweede leven geven, door er linux op te zetten en dan zien we wel.
Ik weet echter helemaal niks van de hardware in de laptop (geen serienummer oid), enkel dat het 4mb ram heeft en 386/486 based is.
Op de 200mb grote harde schijf heb ik wat precompiled basistools gegooid (uit ttylinux), en extlinux in de mbr geinstalleerd. Enige dat ik nog moest doen was dus een passende kernel compilen.

Maar dat is moeilijker dan ik dacht. Bij gebrek aan informatie over de hardware kan ik niet opzoeken welke drivers ik allemaal nodig heb. Een full-blown kernel booten om dan lshw te draaien zit er met de 4mb ram jammergenoeg ook niet in. Heel minimalistisch beginnen (ik had de bzImage op 600kb gekregen) en dan stap voor stap elk stukje hardware in de laptop in gang krijgen, lukt zelf ook niet (enkel de drivers voor de harde schijf zorgen dat de kernel >1mb is, wat uitgepakt te veel data is voor 4mb ram). Tenslotte heb ik alle drivers voor de HD in een initrd gegoten, maar zoals de naam doet vermoeden tracht de kernel die initrd ook in het ram te laden wat natuurlijk niet lukt.

Kent iemand nog een manier om hetzij heel vroeg een soort hardware-detectie uit te voeren, hetzij de modules te proben van de harde schijf, zonder ze daarvoor alle drivers (oa voor de harde-schijf & controller) in het ram geheugen te laden?

alvast bedankt,
maleadt

Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Uhm kun je niet een hele kale kernel maken met alleen de generic drivers erin?
Denk dat je dan via /proc wel het een en ander kunt uitvogelen.

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Kun je niet gewoon een kernel zonder hdd driver laden, en dan een lspci doen?

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Boudewijn schreef op woensdag 03 september 2008 @ 14:42:
Kun je niet gewoon een kernel zonder hdd driver laden, en dan een lspci doen?
Op een 486?

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Waarom niet? Oh shit die dingen hebben geen PCI bus :/. (vraag me nu af of ze er waren).
In dat geval heb ik niets gezegd.

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
De latere 486 hadden wel degelijk een pci bus, of deze er een heeft is iets anders. Kun je in het bios geen configuratie gegevens achterhalen? Of anders eerste eens opstarten met FreeDosen kijken of je onder Dos wat hardware info kunt vinden.

Acties:
  • 0 Henk 'm!

  • Ultraman
  • Registratie: Februari 2002
  • Laatst online: 11-09 14:49

Ultraman

Moderator Harde Waren

Boefje

Er zijn wel degelijk 486ers met PCI bus, de late modellen hadden PCI.
Bij een bak uit '93 heb ik echter twijfels... want de PCI standaard komt uit '93, dus die zal dat nauwelijks hebben.

Als je stil blijft staan, komt de hoek wel naar jou toe.


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Even opschroeven en chpset identificeren? Beetje low-tech maar mischien wel zo slim :).

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Sir Isaac schreef op woensdag 03 september 2008 @ 15:30:
De latere 486 hadden wel degelijk een pci bus, of deze er een heeft is iets anders. Kun je in het bios geen configuratie gegevens achterhalen? Of anders eerste eens opstarten met FreeDosen kijken of je onder Dos wat hardware info kunt vinden.
Nope, geen PCI. En het enigste dat de bios mij vertelt is dat de laptop afstamt uit 1993 (copyright 1983-1993) en dat de bios gemaakt is voor 80486/82C388 processors.
Maar FreeDOS ga ik zeker eens proberen, in combinatie met een hardware detectie tooltje op een floppy zetten en opstarten maar :)
MTWZZ schreef op woensdag 03 september 2008 @ 14:24:
Uhm kun je niet een hele kale kernel maken met alleen de generic drivers erin?
Denk dat je dan via /proc wel het een en ander kunt uitvogelen.
Bestaan er dan niet-specifieke drivers die dienst doen op verschillende modellen?

Acties:
  • 0 Henk 'm!

  • Springuin
  • Registratie: Juli 2002
  • Laatst online: 11-09 20:13
Ik weet niet welke kernelversie je nu probeert te maken, maar probeer anders eens een hele oude debian versie ofzo, met een 2.0 of 2.2 kernel. Heb je een CD drive erinzitten?

Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Nope :') Een floppy drive, that's it.
Momenteel gebruik ik 2.6.26-2, daarvan had ik de sources nog staan. Maar de meeste basisfeatures staan toch uit, dus ik weet niet of een 2.(4|2|0)-branch kernel veel kleiner zou zijn?

Acties:
  • 0 Henk 'm!

  • Nielson
  • Registratie: Juni 2001
  • Laatst online: 19:38
Je zou even kunnen booten met een dos bootdiskette met daarop Aida16.

[ Voor 4% gewijzigd door Nielson op 03-09-2008 16:59 ]


Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
5 floppy's(die dingen vergaan precies...) en evenveel hardware detectie programma's (de helft scant de PCI bus, wat resulteert in een crash) later, heeft Aida16 (bedankt voor de hint) mij een gedetailleerd report van de hardware bezorgd. Alleen het (belangrijkste?) detail ontbreekt er in: de PATA controller :P Goed ja, nu sta ik toch al ergens.

Wel komiek dat DOS een operationeel systeem levert in 200kb op alle hardware, terwijl linux een gigantische hoeveelheid controller drivers nodig heeft.

[ Voor 31% gewijzigd door maleadt op 03-09-2008 17:03 ]


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
MALEADt schreef op woensdag 03 september 2008 @ 17:01:
Wel komiek dat DOS een operationeel systeem levert in 200kb op alle hardware, terwijl linux een gigantische hoeveelheid controller drivers nodig heeft.
DOS gebruikt het BIOS, Linux niet.

Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
I see, vandaar.

Anyway, ik geraak verder! Door de opmerking dat deze laptop wellicht geen PCI zal hebben, heb ik de PCI bus uit de kernel weggelaten. Hierdoor verdween 80% van alle PATA chipset drivers :P Zo heb ik (deels) kunnen opstarten, ver genoeg om te zien dat linux de PATA_LEGACY module gebruikte.

Next up is uitzoeken waarom hij niet verder wil dan "Freeing unused kernel memory", maar een eerste blik op de google resultaten zegt me dat dit een goed gedocumenteerd probleem is.

Acties:
  • 0 Henk 'm!

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Olaf van der Spek schreef op woensdag 03 september 2008 @ 17:16:
[...]

DOS gebruikt het BIOS, Linux niet.


Een bios past natuurlijk meestal wel ruim binnen 8megabit.

Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Hmm, het blijkt nog moeilijker dan verwacht. De kernel laadt perfect, maar Busybox' "/sbin/init" blijft om een of andere manier hangen (aan het lawaai van de harde schijf te horen zoekt hij iets).
Aan busybox zelf ligt het niet, aangezien het vroeger nog perfect werkte met volledig dezelfde binaries (op dezelfde laptop, met meer RAM).

EDIT: hm, al gevonden waaraan dit laatste ligt. Kernel past ZO perfect binnen het ramgeheugen, dat busybox niet in het ram kan geladen worden. En je kan je wel inbeelden dat het swappen van de main executable op een uber trage hardeschijf in PIO modus, en dat op een 66Mhz laptop, best voor wat vertraging zorgt :X

EDIT 2: Kernel 2.6 mag ik dus vergeten :+ 2.4 werkt iets vlotter, maar breekt de helft van mijn binaries (waaronder de init |:()... Als test-case wil ik nog wat verder gaan: eerst gcc2.95 bootstrappen om er dan kernel 2.0 met te compilen :)

[ Voor 47% gewijzigd door maleadt op 03-09-2008 21:59 ]


Acties:
  • 0 Henk 'm!

  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 08-09 21:46

daft_dutch

>.< >.< >.< >.<

misschien ben je -Os vergeten als setting. Denk het eigenlijk niet. Maar als het zo is hoef je niets meer te doen. (denk ik)

>.< >.< >.< >.<


Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Nope, -Os had ik wel degelijk gebruikt, toch bedankt voor de opmerking.
Jammer genoeg slaag ik er niet in om gcc 2.95 te compilen, anders had ik nog eens kernel 2.0 of 2.2 kunnen uittesten :)

Nuja kernel 2.4 werkt ook vlotjes. Morgen eens kijken of builden met uClibc noemenswaardige verbeteringen oplevert.

  • Elijan9
  • Registratie: Februari 2004
  • Laatst online: 10-09 21:08
begintmeta schreef op woensdag 03 september 2008 @ 18:01:
Olaf van der Spek schreef op woensdag 03 september 2008 @ 17:16:
[...]

DOS gebruikt het BIOS, Linux niet.


Een bios past natuurlijk meestal wel ruim binnen 8megabit.
Dat komt omdat een BIOS specifiek voor de exacte hardware geschreven is (scheelt veel code) en omdat deze alleen maar voorziet in de enkel hoognodige, versimpelde aansturing van niet eens alle hardware.
DOS moet trouwens ook gewoon drivers laden (via config.sys en autoexec.bat) zoals voor het geheugen, toetsenbord indeling, muis, netwerkkaart, CDROM, PCMCIA, enzovoort.

Maar een 2.6 kernel is eigenlijk niet geschikt voor deze hardware, daarnaast is het verstandig om uCLibc te gaan gebruiken voor de applicaties die je wilt kunnen draaien. Tip daarbij: gebruik TinyGentoo om het eenvoudigst pakketten te compileren voor je hardware. (Je hebt ook buildroot, maar ik vond TinyGentoo veel gemakkelijker in gebruik).

War is when the young and stupid are tricked by the old and bitter into killing each other. - Niko Bellic


  • dion_b
  • Registratie: September 2000
  • Laatst online: 00:08

dion_b

Moderator Harde Waren

say Baah

en 386/486 based is
Exact welke van deze twee maakt nogal uit.

Mogelijk is het probleem dat in CFLAGS -march=486 staat. Dan gaat het niet op een 386 werken. Bovendien support glibc ook geen 386, maar dat heb je ondervangen door uClibc te gebruiken :)

Oslik blyat! Oslik!


  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 22:32

Tuxie

En WeL nU!

Leuk project hoor! Waar ik alleen nieuwsgierig naar ben is wat je er daarna mee gaat doen? ;)

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Elijan9 schreef op donderdag 04 september 2008 @ 11:43:
Maar een 2.6 kernel is eigenlijk niet geschikt voor deze hardware, daarnaast is het verstandig om uCLibc te gaan gebruiken voor de applicaties die je wilt kunnen draaien. Tip daarbij: gebruik TinyGentoo om het eenvoudigst pakketten te compileren voor je hardware. (Je hebt ook buildroot, maar ik vond TinyGentoo veel gemakkelijker in gebruik).
Daar zeg je me wat, ik onderneem momenteel een derde poging om buildroot zijn werk te laten voltooien (telkens een configuratie-optie vergeten wat dan voor exotische foutmeldingen zorgt). En geloof me, op een P4 neemt het aardig wat tijd in beslag om het proces te voltooien :P
dion_b schreef op donderdag 04 september 2008 @ 13:08:
Exact welke van deze twee maakt nogal uit.

Mogelijk is het probleem dat in CFLAGS -march=486 staat. Dan gaat het niet op een 386 werken. Bovendien support glibc ook geen 386, maar dat heb je ondervangen door uClibc te gebruiken :)
Busybox werkte uiteindelijk wel hoor, maar gewoon verschrikkelijk traag (door het feit dat de main executable geen RAM meer had om in te draaien). En busybox bleek incompatibel met kernel 2.4, dus ik heb nog niet kunnen testen of het dan wat vlotter draait.
Nuja, op voorwaarde dat buildroot deze keer wel slaagt, moet ik alle binaries toch recompilen (tegen uclibc), dan kan ik even goed een paar jaar terug in de tijd gaan en een busybox release pakken die gegarandeerd werkt op een 2.4.x kernel :)
Tuxie schreef op donderdag 04 september 2008 @ 13:13:
Leuk project hoor! Waar ik alleen nieuwsgierig naar ben is wat je er daarna mee gaat doen? ;)
Die vraag stel ik me pas achteraf :D
Nee eigenlijk wou ik er even snel een linux distro op zwieren, zodat ik mbhv digitemp mijn net gesoldeerde interface voor een 1-wire DS18S20 eens kon uittesten. Blijkbaar is het snel op zwieren aspect wat uit de hand gelopen... Maar een beetje ontdekken op het gebied van embedded development is altijd mooi meegenomen, zeker als het 1 van mijn mogelijke afstudeerrichtingen is.

EDIT: conclusie na 3 uur, kernel compilen @ busybox = no go

EDIT 2: nog een vraagje
"make menuconfig" in de chrooted toolchain weigert dienst, de utility lxdialog kan niet gelinkt worden bij gebrek aan de routine "index"
code:
1
2
3
4
5
6
7
8
9
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE  -DCURSES_LOC="<ncurses.h>" -c -o util.o util.c
util.c: In function 'print_autowrap':
util.c:224: warning: implicit declaration of function 'index'
util.c:224: warning: incompatible implicit declaration of built-in function 'index'

gcc -o lxdialog checklist.o menubox.o textbox.o yesno.o inputbox.o util.o lxdialog.o msgbox.o -lncurses
util.o: In function `print_autowrap':
util.c:(.text+0x55f): undefined reference to `index'
util.c:(.text+0x66e): undefined reference to `index'


Ik vergeet dus blijkbaar met een bepaalde module te linken. Kent iemand een manier om op mijn werkende systeem te achterhalen waar net index gedefinieerd wordt?

[ Voor 16% gewijzigd door maleadt op 04-09-2008 19:51 ]


Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Kleine update over hoe het nog afgelopen is.

Het laatste probleem, die make menuconfig, heb ik niet kunnen oplossen, maar de dependancy die make menuconfig zou moeten oplossen (include/linux/autoconf.h) heb ik kunnen oplossen door de header gewoon te kopiëren van mijn main systeem, waar de make menuconfig wel werkte. Met het geluk dat er geen environment-specifieke gegevens in die header stonden heb ik zo de kernel kunnen builden.

Vervolgens de toolchain gebruikt om uClibc & busybox te builden, wat init scripts (geleend van ttylinux) overheen gegooid, en samen met extlinux heb ik nu een bootable linux-based systeem met medium featured shell, en dat allemaal in 1.9 megabytes :)

Om mij of iemand anders later wat opzoekingswerk te besparen, heb ik wat informatie etcetera in een paar wiki documentjes gegoten: hoe een toolchain maken, hoe een basis linux systeem maken, en wat specifieke informatie wat betreft de MiTAC laptop. Misschien ietwat nutteloos (er bestaan *tig andere & betere tutorials), maar goed :P

Mission accomplished!

Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Gefeliciteerd dat het gelukt is. Het verbaast me wel dat dat zo veel moeite koste. De combinatie 2.4 kernel, uLibc, en een 486 processor wordt toch best nog wel gebruikt in routers, printers en andere embedded devices.
Ik herinner me nu dat je vroeger ook isapnp en pnpdump had voor het detecteren en configureren van geluidskaarten, i/o poorten e.d. Misschien heb je er nog wat aan om de rest van je hardware aan de praat te krijgen. Met seriële poorten en een geluidskaart (als low-end oscilloscoop) kun je leuke dingen doen. linkje
Pagina: 1