[+] " *** No rule to make target `oldconfig' " - kompilacja metod

Pomoc dotycząca instalacji systemu
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post 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?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post 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?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post 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.
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post 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?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post 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?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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 .
ODPOWIEDZ