kernel fordítási gond [megoldva]

Fórumok

Kedves Fórumtársak!

A probléma azért a címnél kicsit bonyolultabb.
A Maemo keretrendszerben próbáltam (arm emuláció mellett) a

make menuconfig

-ot, azonban ez nem jött össze. Megjegyzem a

make config

működik, csak éppen...
Igazából nem is akarom annyira lefordítani a kernelt, csupán látni szeretném, hogy milyen válaszási lehetőségek vannak az arm platformon a kernelfordításkor. Erre pedig a menuconfig alkalmasabb szerintem.
Ezt írja ki. Ilyennel még nem találkoztam, ezért fordultam hozzátok.
(Esetleg nem megfelelő ncurses van fent?)

http://pastebin.ca/1008850

Előre is köszi a segítséget!

Üdv:
János

Szerk: igen, valami curses gond lehet...

Szerk2: megpróbáltam úgy, hogy feltettem a debian ncurces5.5 csomagját forrásból fordítva, de az eredmény ugyanaz...

Szerk3:


[sbox-MAEMO_ARM: /usr/src/linux/scripts/kconfig/lxdialog] > /bin/sh check-lxdialog.sh -check
 *** Unable to find the ncurses libraries.
 *** make menuconfig require the ncurses libraries
 ***
 *** Install ncurses (ncurses-devel) and try again
 ***

mindemellett:


[sbox-MAEMO_ARM: /usr/src/linux/scripts/kconfig/lxdialog] > ls /usr/include/curses.h
/usr/include/curses.h
[sbox-MAEMO_ARM: /usr/src/linux/scripts/kconfig/lxdialog] > find /usr/lib -iname "*curses*"
/usr/lib/libcurses.a
/usr/lib/libncurses.a
/usr/lib/libncurses.so
/usr/lib/libncurses++.a
/usr/lib/libncurses_g.a
/usr/lib/libcurses.so
/usr/lib/libncurses.so.5

szóval ez fura... ldconfigot kellene futtatnom? vagy mi? :S

Szerk4:
A drága

$cc

nincs definiálva a fájlban, meg a shellben sem, úgyhogy nem csodálkozok már semmin. Megpróbálom még újra leforgatni az ncursest...

Hozzászólások

"*** Install ncurses (ncurses-devel) and try again"
A libncurses5-dev csomag kellene.

apt-get install libncurses5-dev

a configure-nak beadtam, hogy --with-libs meg --with-shared-objects meg nem tudom, ami csak a configure helpjében volt...

szerk: --with-libtool --with-shared --with-normal

de ettől kezdek kiakadni:


[sbox-MAEMO_ARM: ~] > apt-get update
Get:1 http://repository.maemo.org gregale/free Packages [87.2kB]
Get:2 http://repository.maemo.org gregale/free Release [84B]
Get:3 http://repository.maemo.org gregale/non-free Packages [6809B]
Get:4 http://repository.maemo.org gregale/non-free Release [88B]
Get:5 http://repository.maemo.org gregale/free Sources [38.6kB]
Ign http://repository.maemo.org gregale/free Release
Get:6 http://repository.maemo.org gregale/non-free Sources [1005B]
Ign http://repository.maemo.org gregale/non-free Release
Fetched 134kB in 1s (95.1kB/s)
Reading Package Lists... Done
[sbox-MAEMO_ARM: ~] > apt-get install libncurses5-dev
Reading Package Lists... Done
Building Dependency Tree... Done
libncurses5-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

No jó, akkor szedjük le, tegyük fel újra...


[sbox-MAEMO_ARM: ~] > apt-get remove libncurses5-dev
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  libncurses5-dev libreadline4-dev libvte-dev
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
Need to get 0B of archives.
After unpacking 6996kB disk space will be freed.
Do you want to continue? [Y/n] y
/scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file or directory
(Reading database ... 23356 files and directories currently installed.)
Removing libvte-dev ...
Removing libreadline4-dev ...
Removing libncurses5-dev ...
[sbox-MAEMO_ARM: ~] > apt-get install libncurses5-dev libreadline4-dev libvte-dev
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  libncurses5-dev libreadline4-dev libvte-dev
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 1700kB of archives.
After unpacking 6996kB of additional disk space will be used.
Get:1 http://repository.maemo.org gregale/free libncurses5-dev 5.4-3 [1061kB]
Get:2 http://repository.maemo.org gregale/free libreadline4-dev 4.3-10 [198kB]
Get:3 http://repository.maemo.org gregale/non-free libvte-dev 1:0.11.13-3osso2 [441kB]
Fetched 1700kB in 2s (621kB/s)
/scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file or directory
Selecting previously deselected package libncurses5-dev.
(Reading database ... 22397 files and directories currently installed.)
Unpacking libncurses5-dev (from .../libncurses5-dev_5.4-3_armel.deb) ...
Selecting previously deselected package libreadline4-dev.
Unpacking libreadline4-dev (from .../libreadline4-dev_4.3-10_armel.deb) ...
Selecting previously deselected package libvte-dev.
Unpacking libvte-dev (from .../libvte-dev_1%3a0.11.13-3osso2_armel.deb) ...
Setting up libncurses5-dev (5.4-3) ...
Setting up libreadline4-dev (4.3-10) ...

Setting up libvte-dev (0.11.13-3osso2) ...
[sbox-MAEMO_ARM: ~] >

Nos, lássuk csak, megy-e most...

és nem, nem megy! :@
no mindegy, én ezt most nem bírom idegekkel. megyek lefekszem.
__________________________________________________________
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 12.0 | 2.6.24.6-janos

"A drága $cc nincs definiálva a fájlban, meg a shellben sem, ..."
Ott van az a scripts/kconfig/lxdialog/check-lxdialog.sh-ban, méghozzá a paraméterlista értékét kapja, ami eredetileg a $HOSTCC volt a Makefile-ban.

"Igazából nem is akarom annyira lefordítani a kernelt, csupán látni szeretném..."
Ehhez nem kell mást tenni, mint a Makefile-ban átírni az ARCH változó értékét arm-ra. Ha nem szükséges lefordítani, csak megnézni vagy konfigot generálni, akkor az előző hozzászólásban említetten kívül mást nem kell tenni. Ehhez nem kell Scratchbox, a hoston.

Ha fordítani is kell (és a scratchboxon belül még továbbra sem megy), akkor az előző módon generált konfigot át kell másolni alá, és úgy lefordítani. Azt írtad, hogy az jól működik.

Documentation/arm/README:
  ARCH = arm

Megoldottam!!! (Phű de büszke lettem magamra.)

At kellett írnom a

check-lxdialog.sh

-t, illetve annak az ldflags szubrutinját ilyenre:


ldflags()
{
        $cc -print-file-name=libncursesw.so &> /dev/null
        if [ $? -eq 0 ]; then
                echo "int main() {return 0;}" | gcc -xc - -lncursesw -o $tmp &> /dev/null
                if [ $? -eq 0 ]; then
                    echo '-lncursesw'
                    exit
                fi
        fi
        $cc -print-file-name=libncurses.so &> /dev/null
        if [ $? -eq 0 ]; then
                echo "int main() {return 0;}" | gcc -xc - -lncurses -o $tmp &> /dev/null
                if [ $? -eq 0 ]; then
                    echo '-lncurses'
                    exit
                fi
        fi
        $cc -print-file-name=libcurses.so &> /dev/null
        if [ $? -eq 0 ]; then
                echo "int main() {return 0;}" | gcc -xc - -lcurses -o $tmp &> /dev/null
                if [ $? -eq 0 ]; then
                    echo '-lcurses'
                    exit
                fi
        fi
        exit 1
}

A gond az volt, hogy a

$cc -print-file-name=*curses*.so

sorok kimenetében nem volt / és a drága

grep

meg arra szűrt, így persze 1 lett a visszatérési érték, így a szkript nem is írt ki semmit...
De már működik! :)
__________________________________________________________
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 12.0 | 2.6.24.6-janos