Strona 5 z 13
: 04 września 2013, 22:38
autor: cloudbuster
A już miałem nadzieję, że dzieli mnie mały krok od uruchomienia tej karty.
Znalazłem również to:
http://romanrm.ru/en/a10/debian
Myślałem zapisać obecną konfigurację, nagrać obraz z powyższej strony, ponownie pobrać jądro, wczytać konfigurację i dodać moduł ath9k.
Zadziała, czy to ta sama ślepa uliczka?
: 04 września 2013, 23:13
autor: Rafal_F
Szczerze mówiąc nie wiem. Ja bym zaczął od linków jakie podałem wcześniej. Bo był tam bardzo dokładny opis dodania modułu.
: 05 września 2013, 10:06
autor: cloudbuster
Dziękuję!
Spróbuję i dam znać.
Dodane:
Czytam ten artykuł:
http://andrewdwyer.wordpress.com/2013/0 ... rm-device/
I jeśli dobrze rozumiem, to wszystko mogę robić tak samo jak robiłem, dopiero od zdania:
"You can now compile the kernel and modules with the commands"
Powinienem robić według poradnika.
Kolejne 3 linijki "dostosowują"
program rozruchowy, a kolejne to tylko kopiowanie obrazu na kartę.
Dobrze rozumiem?
: 05 września 2013, 17:18
autor: Rafal_F
Teraz jest trochę inaczej, w tym poradniku autor korzysta z kompilacji skrośnej. Tzn kompiluje program arm na komputerze PC czyli i386/amd64.
W Debianie, żeby to zrobić musisz dodać repozytorium:
http://romanrm.ru/en/a10/cross-compile-kernel do punktu 2-giego włącznie.
Następnie ja bym spróbował zrobić wszystko jak w artykule. Możesz też spróbować sposób kompilacji z linku który przed chwilą podałem.
Albo z tego linku:
http://linux-sunxi.org/Building_on_Debian#kernel
Wszystkie powyższe są bardzo podobne.
Standardowa kompilacja opisana w poradniku na forum się w tym przypadku nie sprawdzi.
: 07 września 2013, 17:15
autor: cloudbuster
Podążam według:
http://romanrm.ru/en/a10/cross-compile-kernel
Uruchomiłem Debiana pod virtualboxem. Wiesz może dlaczego nie mogę przeprowadzić konfiguracji przez xconfig? Pojawia się komunikat, że nie może połączyć się z xserwerem (mimo pracy w środowisku graficznym). Konfiguracja przez menuconfig jest trochę mniej wygodna.
Edycja:
Dobrze, udało się, stoję na punkcie 5.
Co oznacza "In the kernel source directory do"? Czyli gdzie? W katalogu linux-sunxi? Czy może dalej?
Kod: Zaznacz cały
ls -a
. .config firmware Kbuild mm scripts.. .config.old fs Kconfig modules security.29358.tmp COPYING .git kernel net soundAndroid.mk CREDITS .gitignore lib README toolsarch crypto include .mailmap REPORTING-BUGS usrblock Documentation init MAINTAINERS rootfs virtbuild.sh drivers ipc Makefile samples
".config" to moja konfiguracja.
Próbowałem też przenieść plik konfiguracji do katalogu "kernel"
Kod: Zaznacz cały
ls -a
. kfifo.c rwsem.c.. kmod.c sched_autogroup.cacct.c kprobes.c sched_autogroup.hasync.c ksysfs.c sched.caudit.c kthread.c sched_clock.cauditfilter.c latencytop.c sched_cpupri.caudit.h lockdep.c sched_cpupri.hauditsc.c lockdep_internals.h sched_debug.caudit_tree.c lockdep_proc.c sched_fair.caudit_watch.c lockdep_states.h sched_features.hbacktracetest.c Makefile sched_idletask.cbounds.c module.c sched_rt.ccapability.c mutex.c sched_stats.hcgroup.c mutex-debug.c sched_stoptask.ccgroup_freezer.c mutex-debug.h seccomp.ccompat.c mutex.h semaphore.cconfigs.c notifier.c signal.ccpu.c nsproxy.c smp.ccpuset.c padata.c softirq.ccrash_dump.c panic.c spinlock.ccred.c params.c srcu.cdebug pid.c stacktrace.cdelayacct.c pid_namespace.c stop_machine.cdma.c pm_qos_params.c sys.celfcore.c posix-cpu-timers.c sysctl_binary.cevents posix-timers.c sysctl.cexec_domain.c power sysctl_check.cexit.c printk.c sys_ni.cextable.c profile.c taskstats.cfork.c ptrace.c test_kprobes.cfreezer.c range.c timefutex.c rcupdate.c time.cfutex_compat.c rcutiny.c timeconst.plgcov rcutiny_plugin.h timer.c.gitignore rcutorture.c tracegroups.c rcutree.c tracepoint.chrtimer.c rcutree.h tsacct.chung_task.c rcutree_plugin.h uid16.cirq rcutree_trace.c up.cirq_work.c relay.c user.citimer.c res_counter.c user_namespace.cjump_label.c resource.c user-return-notifier.ckallsyms.c rtmutex.c utsname.cKconfig.freezer rtmutex_common.h utsname_sysctl.cKconfig.hz rtmutex-debug.c wait.cKconfig.locks rtmutex-debug.h watchdog.cKconfig.preempt rtmutex.h workqueue.ckexec.c rtmutex-tester.c workqueue_sched.h
Niestety, po wykonaniu kolejnych poleceń:
Kod: Zaznacz cały
export ARCH=arm
root@debian:/home/bartek/linux-sunxi/kernel# export DEB_HOST_ARCH=armhf
root@debian:/home/bartek/linux-sunxi/kernel# export CONCURRENCY_LEVEL=`grep -m1 cpu\ cores /proc/cpuinfo | cut -d : -f 2`
root@debian:/home/bartek/linux-sunxi/kernel# fakeroot make-kpkg --arch arm --cross-compile arm-linux-gnueabihf- --initrd --append-to-version=-custom1 kernel_image kernel_headers
We do not seem to be in a top level linux kernel source directorytree. Since we are trying to make a kernel package, that does not makesense. Please change directory to a top level linux kernel source
directory, and try again. (If I am wrong, and this is indeed a toplevel linux kernel source directory, then I have gotten sadly out ofdate with current kernels, and you should upgrade kernel-package)
W obu przypadkach pojawia mi się powyższy komunikat i nie bardzo wiem jak zrobić to poprawnie.
: 07 września 2013, 17:33
autor: Rafal_F
Jako, że chodzi nam o format kompatybilny z uboot ja bym zrobił te wszystkie eksporty, pominął krok z fakeroot (skoro nie działa) i przeszedł do linijki:
Kod: Zaznacz cały
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- EXTRAVERSION=-custom1 uImage
Albo
najlepiej skompiluj i zainstaluj tak jak napisali tutaj:
http://andrewdwyer.wordpress.com/2013/0 ... rm-device/
Tylko samą kompilację. Te kroki z fakeroot mają utworzyć paczki deb, ale nic Ci po nich. Tobie potrzebny jest plik uImage.
PS. Katalog ze źródłami to ten w którym zapisał się .config.
: 08 września 2013, 22:09
autor: cloudbuster
Kod: Zaznacz cały
E: Unable to locate package gcc-4.7-arm-linux-gnueabihf
E: Couldn't find any package by regex 'gcc-4.7-arm-linux-gnueabihf'
E: Unable to locate package gcc-arm-linux-gnueabihf
Google podaje tylko Ubuntu, gdy szukam w jakim repozytorium to znaleźć?
http://www.apt-get.org Nic nie znalazło.
Co teraz?
: 08 września 2013, 22:20
autor: Rafal_F
Odpowiedniego linka już podałem wcześniej:
http://romanrm.ru/en/a10/cross-compile-kernel:
Kod: Zaznacz cały
deb http://www.emdebian.org/debian/ unstable main
Kod: Zaznacz cały
aptitude search gcc-4.7-arm-linux-gnueabihf
p gcc-4.7-arm-linux-gnueabihf - GNU C compiler
p gcc-4.7-arm-linux-gnueabihf-base - GCC, the GNU Compiler Collection (base package)
Jak będą problemy ze znalezieniem binarki zastosuj sposób z drugiego punktu z linka na górze., ale tylko jak będą problemy.
: 10 września 2013, 20:28
autor: cloudbuster
Kod: Zaznacz cały
bartek@debian:~$ aptitude search gcc-4.7-arm-linux-gnueabihf
i gcc-4.7-arm-linux-gnueabihf - GNU C compiler
i A gcc-4.7-arm-linux-gnueabihf-bas - GCC, the GNU Compiler Collection (base pac
bartek@debian:~$ sudo aptitude install gcc-4.7-arm-linux-gnueabihf
Nie zostaną zainstalowane, zaktualizowane ani usunięte żadne pakiety.0 pakietów aktualizowanych, 0 instalowanych, 0 do usunięcia i 0 nieaktualizowanych.Do pobrania 0 B archiwów. Zajęte po rozpakowaniu: 0 B.
Tego nie rozumiem: znalazło, ale nic nie instaluje?
Kod: Zaznacz cały
root@debian:
/home/bartek# aptitude search gcc-arm-linux-gnueabihf
root@debian:/home/bartek#
Czy to są te problemy ze znalezieniem binarki?
Edycja:
Kod: Zaznacz cały
bartek@debian:~$ sudo aptitude install gcc-4.7-arm-linux-gnueabi
Następujące NOWE pakiety zostaną zainstalowane: binutils-arm-linux-gnueabi{a} cpp-4.7-arm-linux-gnueabi{a}
gcc-4.7-arm-linux-gnueabi gcc-4.7-arm-linux-gnueabi-base{a}
libc-dev-bin-armel-cross{a} libc6-armel-cross{a} libc6-dev-armel-cross{a}
libgcc1-armel-cross{a} libgomp1-armel-cross{ab}
linux-libc-dev-armel-cross{a}
0 pakietów aktualizowanych, 10 instalowanych, 0 do usunięcia i 0 nieaktualizowanych.
Do pobrania 22,0 MB archiwów. Zajęte po rozpakowaniu: 44,5 MB.
Następujące pakiety mają niespełnione zależności: libgomp1-armel-cross : Wymaga: gcc-4.8-base-armel-cross (= 4.8.1-10) który jest pakietem wirtualnym.
Następujące działania rozwiążą problemy z zależnościami:
Zatrzymanie bieżących wersji następujących pakietów:
1) gcc-4.7-arm-linux-gnueabi [niezainstalowany]
2) libgomp1-armel-cross [niezainstalowany]
Zaakceptować rozwiązanie? [Y/n/q/?] y
Nie zostaną zainstalowane, zaktualizowane ani usunięte żadne pakiety.
0 pakietów aktualizowanych, 0 instalowanych, 0 do usunięcia i 0 nieaktualizowanych.Do pobrania 0 B archiwów.
Zajęte po rozpakowaniu: 0 B.
Tu to samo, tego też nie rozumiem. Instaluje, akceptuje, ale nic nie będzie zainstalowane. Dlaczego?
: 10 września 2013, 21:22
autor: Rafal_F
Literka "i" na początku wyniku wyszukiwania aptitude oznacza, że pakiet jest zainstalowany. A jak spróbujesz zainstalować zainstalowany pakiet to aptitude zignoruje polecenie.
A co do drugiego problemu, to się nie przejmuj, Ty potrzebujesz pakietów z "hf" na końcu.
Jeszcze trochę to sam spróbuje to skompilować :P .