logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

- Linux (linaro) - instalacja sterownika karty wifi

Kamil 1 22 Paź 2017 16:38 5217 19
REKLAMA
  • #1 16772146
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Cześć.

    Jeśli nie ten dział to przepraszam. Od razu też zaznaczę, że jestem bardzo początkujący w linuxie.

    Mam płytkę z procesorem RK3066, na której zainstalowałem system linux, a dokładnie Linaro, pobrany z tej strony http://www.haoyuelectronics.com/service/RK3066/Images/ubuntu/

    Komunikację odbywam za pomocą interfejsu UART podłączonego do przejściówki w laptopie. Oto jak się przedstawia system zaraz po uruchomieniu

    - Linux (linaro) - instalacja sterownika karty wifi

    A teraz do rzeczy. Płytka ma na pokładzie moduł WiFi RT5370. Chciałbym więc móc połączyć się z wifi, ale jest problem, system ten ma zaimplementowane sterowniki tylko dla układu 8188EU, którego nie posiadam. System jednak wykrywa obecny moduł, bo gdy wydam polecenie "lsusb", otrzymuję

    - Linux (linaro) - instalacja sterownika karty wifi

    Znalazłem na YT poradnik, w którym ktoś instaluje sterowniki karty wifi w systemie Kali Linux. Poradnik pod tym linkiem https://www.youtube.com/watch?v=n3EJk44MOU4

    Niestety nie mogę pobrać paczki compat wireless 2010 o której jest mowa w filmie, bo strona internetowa gdzie znajdowały się te paczki przeszła "przebudowę" a same paczki tych sterowników noszą teraz nazwę backports. Oto link do tych paczek
    https://www.kernel.org/pub/linux/kernel/projects/backports/stable/
    Cofając się jednak w katalogu tych paczek, widać tam katalog "2012". W nim wybrałem katalog "09" a potem "18". Teraz pojawiła się lista z paczkami "compat drivers", pobrałem więc paczkę "compat-drivers-2012-09-18-p.tar".
    Wrzuciłem ją na kartę SD, zamontowałem nośnik w systemie linux i wykonywałem kolejne etapy zgodnie z filmem.
    Tak więc, rozpakowałem paczkę (do folderu compat2012), wszedłem do jej folderu poleceniem "cd" i wydałem polecenie "make unload".

    Do tej pory jest niby zgodnie z tym co pokazali na filmie. Bo w odpowiedzi dostałem
    - Linux (linaro) - instalacja sterownika karty wifi

    Problem zaczyna się teraz bo gdy wykonam "make load" to mam jakiś błąd
    - Linux (linaro) - instalacja sterownika karty wifi

    To oznacza, że się nie da zainstalować sterownika?
  • REKLAMA
  • #2 16798868
    md37
    Poziom 10  
    Posty: 73
    Pomógł: 1
    Ocena: 9
    W tym folderze powinien być plik Makefile. Przyślij jego treść.
  • #3 16800708
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Witam.

    Dziękuję za zainteresowanie tematem.
    Oto zawartość pliku makefile

    #
    
    # Copyright (c) 2007-2012 Luis R. Rodriguez <mcgrof@frijolero.org>
    #
    # Permission to use, copy, modify, and/or distribute this software for any
    # purpose with or without fee is hereby granted, provided that the above
    # copyright notice and this permission notice appear in all copies.
    #
    # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    
    export KMODDIR?= updates
    KMODDIR_ARG:= "INSTALL_MOD_DIR=$(KMODDIR)"
    ifneq ($(origin KLIB), undefined)
    KMODPATH_ARG:= "INSTALL_MOD_PATH=$(KLIB)"
    else
    export KLIB:= /lib/modules/$(shell uname -r)
    endif
    export KLIB_BUILD ?=	$(KLIB)/build
    export MAKE
    
    DESTDIR?=
    
    ifneq ($(KERNELRELEASE),)
    
    -include $(COMPAT_CONFIG)
    include $(COMPAT_CONFIG_CW)
    
    NOSTDINC_FLAGS := -I$(M)/include/ \
    	-include $(M)/include/linux/compat-2.6.h \
    	$(CFLAGS)
    
    obj-y := compat/
    
    obj-$(CONFIG_COMPAT_RFKILL) += net/rfkill/
    
    ifeq ($(BT),)
    obj-$(CONFIG_COMPAT_WIRELESS) += net/wireless/ net/mac80211/
    obj-$(CONFIG_COMPAT_WIRELESS_MODULES) += drivers/net/wireless/
    
    obj-$(CONFIG_COMPAT_NET_USB_MODULES) += drivers/net/usb/
    
    obj-$(CONFIG_COMPAT_NETWORK_MODULES) += drivers/net/ethernet/atheros/
    obj-$(CONFIG_COMPAT_NETWORK_MODULES) += drivers/net/ethernet/broadcom/
    
    obj-$(CONFIG_COMPAT_VAR_MODULES) += drivers/ssb/
    obj-$(CONFIG_COMPAT_VAR_MODULES) += drivers/bcma/
    obj-$(CONFIG_COMPAT_VAR_MODULES) += drivers/misc/eeprom/
    
    ifeq ($(CONFIG_STAGING_EXCLUDE_BUILD),)
    endif
    
    endif
    
    obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/
    obj-$(CONFIG_COMPAT_BLUETOOTH_MODULES) += drivers/bluetooth/
    
    else
    
    export PWD :=	$(shell pwd)
    
    # The build will fail if there is any space in PWD.
    ifneq (,$(findstring $() ,$(PWD)))
    $(error "The path to this compat-drivers directory has spaces in it." \
    	"Please put it somewhere where there is no space")
    endif
    
    export CFLAGS += \
    -DCOMPAT_BASE="\"$(shell cat $(PWD)/.compat_base)\"" \
    -DCOMPAT_BASE_TREE="\"$(shell cat $(PWD)/.compat_base_tree)\"" \
    -DCOMPAT_BASE_TREE_VERSION="\"$(shell cat $(PWD)/.compat_base_tree_version)\"" \
    -DCOMPAT_PROJECT="\"Compat-drivers\"" \
    -DCOMPAT_VERSION="\"$(shell cat $(PWD)/.compat_version)\""
    
    # These exported as they are used by the scripts
    # to check config and compat autoconf
    export COMPAT_CONFIG_CW=$(PWD)/config.mk
    export COMPAT_CONFIG=$(PWD)/.config
    export CONFIG_CHECK=$(PWD)/.config.mk_md5sum.txt
    export COMPAT_AUTOCONF=include/linux/compat_autoconf.h
    export CREL=$(shell cat $(PWD)/.compat_version)
    export CREL_PRE:=.compat_autoconf_
    export CREL_CHECK:=$(PWD)/$(CREL_PRE)$(CREL)
    
    all: modules
    
    $(COMPAT_CONFIG): ;
    
    modules: $(CREL_CHECK)
    	$(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
    	@touch $@
    
    bt: $(CREL_CHECK)
    	+@./scripts/check_config.sh
    	$(MAKE) -C $(KLIB_BUILD) M=$(PWD) BT=TRUE modules
    	@touch $@
    
    # We use a CREL_CHECK variable which will depend on the environment used to
    # build. If the environment requirements change it forces a reconfiguration
    # check. This means we force a new reconfiguration check if a the user gets a
    # new updates of compat-drivers or when the user updates the $(COMPAT_CONFIG)
    # file.
    # XXX: add kernel target to the CREL_CHECK mix, this would ensure we also
    # reconfigure and build again fresh if we detect a new target kernel is
    # being used.
    $(CREL_CHECK):
    	@# Force to regenerate compat autoconf
    	+@./compat/scripts/gen-compat-config.sh > $(COMPAT_CONFIG)
    	@rm -f $(CONFIG_CHECK)
    	+@./scripts/check_config.sh
    	@md5sum $(COMPAT_CONFIG_CW) > $(CONFIG_CHECK)
    	@touch $@
    
    btinstall: btuninstall bt-install-modules
    
    bt-install-modules: bt
    	$(MAKE) -C $(KLIB_BUILD) M=$(PWD) $(KMODDIR_ARG) $(KMODPATH_ARG) BT=TRUE \
    		modules_install
    	@/sbin/depmod -ae
    	@echo
    	@echo Now run:
    	@echo
    	@echo sudo make btunload:
    	@echo
    	@echo And then load the needed bluetooth modules. If unsure reboot.
    	@echo
    
    btuninstall:
    	@# New location, matches upstream
    	@rm -rf $(KLIB)/$(KMODDIR)/net/bluetooth/
    	@rm -rf $(KLIB)/$(KMODDIR)/drivers/bluetooth/
    	@# Lets only remove the stuff we are sure we are providing
    	@# on the misc directory.
    	@/sbin/depmod -ae
    	@echo
    
    btclean:
    	$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) BT=TRUE clean
    	@rm -f $(CREL_PRE)*
    
    install: uninstall install-modules install-scripts
    
    install-modules: modules
    	$(MAKE) -C $(KLIB_BUILD) M=$(PWD) $(KMODDIR_ARG) $(KMODPATH_ARG) \
    		modules_install
    	@./scripts/update-initramfs
    
    install-scripts:
    	@# All the scripts we can use
    	@mkdir -p $(DESTDIR)/usr/lib/compat-drivers/
    	@install scripts/modlib.sh	$(DESTDIR)/usr/lib/compat-drivers/
    	@install scripts/madwifi-unload	$(DESTDIR)/usr/sbin/
    	@# This is to allow switching between drivers without blacklisting
    	@install scripts/athenable	$(DESTDIR)/usr/sbin/
    	@install scripts/b43enable	$(DESTDIR)/usr/sbin/
    	@install scripts/iwl-enable	$(DESTDIR)/usr/sbin/
    	@install scripts/athload	$(DESTDIR)/usr/sbin/
    	@install scripts/b43load	$(DESTDIR)/usr/sbin/
    	@install scripts/iwl-load	$(DESTDIR)/usr/sbin/
    	@if [ $(shell modinfo ath_pci > /dev/null 2>&1 && echo 1) ]; then \
    		echo -n "Note: madwifi detected, we're going to disable it. " ;\
    		echo "If you would like to enable it later you can run:" ;\
    		echo " sudo athenable madwifi" ;\
    		echo ;\
    		echo Running athenable ath5k...;\
    		$(DESTDIR)/usr/sbin/athenable ath5k ;\
    	fi
    	@if [ $(shell modinfo iwl4965 > /dev/null 2>&1 && echo 1) ]; then \
    		echo ;\
    		echo -n "Note: iwl4965 detected, we're going to disable it. " ;\
    		echo "If you would like to enable it later you can run:" ;\
    		echo " sudo iwl-load iwl4965" ;\
    		echo ;\
    		echo Running iwl-enable iwlagn...;\
    		$(DESTDIR)/usr/sbin/iwl-enable iwlagn ;\
    	fi
    	@if [ $(shell modinfo iwlagn > /dev/null 2>&1 && echo 1) ] \
    	 && [ $(shell modinfo iwlwifi > /dev/null 2>&1 && echo 1) ]; then \
    		echo ;\
    		echo -n "Note: iwlagn detected, we're going to disable it. " ;\
    		echo "If you would like to enable it later you can run:" ;\
    		echo " sudo iwl-load iwlagn" ;\
    		echo ;\
    		echo Running iwl-enable iwlwifi...;\
    		$(DESTDIR)/usr/sbin/iwl-enable iwlwifi ;\
    	fi
    	@# If on distributions like Mandriva which like to
    	@# compress their modules this will find out and do
    	@# it for you. Reason is some old version of modutils
    	@# won't know mac80211.ko should be used instead of
    	@# mac80211.ko.gz
    	@./scripts/compress_modules
    	@# Mandrake doesn't have a depmod.d/ conf file to prefer
    	@# the updates/ dir which is what we use so we add one for it
    	@# (or any other distribution that doens't have this).
    	@./scripts/check_depmod
    	@# Udev stuff needed for the new compat_firmware_class.
    	@./compat/scripts/compat_firmware_install
    	@/sbin/depmod -a
    	@echo 
    	@echo Now run:
    	@echo 
    	@echo sudo make unload to unload all: wireless, bluetooth and ethernet modules
    	@echo sudo make wlunload to unload wireless modules
    	@echo sudo make btunload to unload bluetooth modules
    	@echo
    	@echo Run sudo modprobe 'driver-name' to load your desired driver. 
    	@echo If unsure reboot.
    	@echo
    
    uninstall:
    	@# New location, matches upstream
    	@rm -rf $(KLIB)/$(KMODDIR)/compat/
    	@rm -rf $(KLIB)/$(KMODDIR)/net/mac80211/
    	@rm -rf $(KLIB)/$(KMODDIR)/net/rfkill/
    	@rm -rf $(KLIB)/$(KMODDIR)/net/wireless/
    	@rm -rf $(KLIB)/$(KMODDIR)/drivers/ssb/
    	@rm -rf $(KLIB)/$(KMODDIR)/drivers/net/usb/
    	@rm -rf $(KLIB)/$(KMODDIR)/drivers/net/wireless/
    	@rm -rf $(KLIB)/$(KMODDIR)/drivers/staging/
    	@rm -rf $(KLIB)/$(KMODDIR)/drivers/net/atl*
    	@find $(KLIB)/$(KMODDIR)/drivers/net/ -name "alx*.ko" -o -name "atl*.ko" 2>/dev/null |xargs rm -f
    	@# Lets only remove the stuff we are sure we are providing
    	@# on the misc directory.
    	@rm -f $(KLIB)/$(KMODDIR)/drivers/misc/eeprom/eeprom_93cx6.ko*
    	@rm -f $(KLIB)/$(KMODDIR)/drivers/misc/eeprom_93cx6.ko*
    	@rm -f $(KLIB)/$(KMODDIR)/drivers/net/b44.ko*
    	@/sbin/depmod -a
    	@./scripts/update-initramfs
    	@echo 
    
    clean:
    	@if [ -d net -a -d $(KLIB_BUILD) ]; then \
    		$(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean ;\
    	fi
    	@rm -f $(CREL_PRE)*
    unload:
    	@./scripts/unload.sh
    
    btunload:
    	@./scripts/btunload.sh
    
    wlunload:
    	@./scripts/wlunload.sh
    
    
    .PHONY: all clean install uninstall unload btunload wlunload modules bt Makefile
    
    endif
    
    clean-files += Module.symvers Module.markers modules modules.order
    clean-files += $(CREL_CHECK) $(CONFIG_CHECK) $(COMPAT_CONFIG)
  • #4 16800734
    md37
    Poziom 10  
    Posty: 73
    Pomógł: 1
    Ocena: 9
    W pliku nie ma "load", dlatego wyskakuje ten błąd. Podeślij zawartość pliku /etc/apt/sources.list Masz gniazdo Ethernet?
  • #5 16800753
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Tu chodzi o ten folder "ect" znajdujący się na "dysku" systemowym? Bo jeśli to ma być folder znajdujący się tam gdzie ten makefile (a więc w tym folderze ze sterownikami to tam nie ma takiego folderu).
  • REKLAMA
  • #6 16800763
    md37
    Poziom 10  
    Posty: 73
    Pomógł: 1
    Ocena: 9
    Jeśli masz przed jakąkolwiek ścieżką "/", to znaczy że jest to w głównym katalogu dysku systemowego.
  • REKLAMA
  • #7 16803285
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Nie posiadam właśnie gniazda Ethernet, tak to już bym sobie poradził pewnie z tym. Oto zawartość pliku o którym kolega wspominał, nie ma tego za wiele:

    deb http://ports.ubuntu.com/ubuntu-ports/ trusty main universe
    deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main universe
  • #8 16831803
    PDT
    Poziom 24  
    Posty: 511
    Pomógł: 79
    Ocena: 50
    Kamil 1 napisał:
    Mam płytkę z procesorem RK3066,
    - Linux (linaro) - instalacja sterownika karty wifi

    Kernel 3.0.36+ Sneaky Weasel jest za stary. Aktualne wersje wielu programów na nim nie pójdą z powodu braku paru nowych funkcji systemowych (np. memfd).
    Najlepiej jest skompilować sobie najnowszy stabilny longterm kernel ze strony www.kernel.org.
    Dla płytki "marsboard" nie powinno to nastręczać trudności, przynajmniej dts jest już gotowy.
    Kamil 1 napisał:
    Płytka ma na pokładzie moduł WiFi RT5370.
    - Linux (linaro) - instalacja sterownika karty wifi

    W kernelach serii 4.x jest sterownik WiFi:
    CONFIG_RT2800USB_RT53XX
    rt2800usb.c: { USB_DEVICE(0x148f, 0x5370) }
  • #9 16832876
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Dziękuję za wiadomość oraz radę :) Niestety nigdy nie zajmowałem się podmianą jądra systemu w Linuxie, więc raczej mi to za bardzo nie wyjdzie. Ale poczytam z ciekawości jak to się robi ;)
  • REKLAMA
  • Pomocny post
    #10 16834802
    viaxa
    Poziom 22  
    Posty: 364
    Pomógł: 55
    Ocena: 73
    Może któryś z tych będzie pasował.
    rt2x00.7z (50.11 kB)Musisz być zalogowany, aby pobrać ten załącznik.
  • #11 16834813
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Próbuję wykonać kompilację jądra w wersji najnowszej czyli 4.9.63. Korzystam z tego poradnika: http://www.linuxportal.pl/wpisy/prosta-kompilacja-jadra-id182976
    Pobrałem więc archiwum z jądrem ze strony https://www.kernel.org/, rozpakowałem i umieściłem w folderze /usr/src/. Następnie wykonuję krok 6 tego poradnika i tu zaczynają się problemy. Pomijam komendy "make clean" oraz "make mrproper" (za pierwszym razem je także wykonałem ale zaczęło sypać warning-ami, więc wgrałem świeży obraz systemu i przy drugiej próbie wymiany kernela pominąłem te komendy).
    Problem pojawia się już przy poleceniu "cp /boot/config-`uname -r` ./.config" bo w folderze boot nie mam żadnego pliku konfiguracyjnego.
    A wykonanie komendy "make menuconfig" daje mi tylko tyle:

    - Linux (linaro) - instalacja sterownika karty wifi
  • Pomocny post
    #12 16836572
    PDT
    Poziom 24  
    Posty: 511
    Pomógł: 79
    Ocena: 50
    Kamil 1 napisał:
    Problem pojawia się już przy poleceniu "cp /boot/config-`uname -r` ./.config" ...


    Błędy są spowodowane:
    1. niedoinstalowany pakiet libncurses5-dev
    2. niezbędne jest ustawienie daty np. date 20171120

    Następnie konfiguracja wstępna (z powodu braku pliku config):
    make multi_v7_defconfig
    i właściwa:
    make menuconfig

    pzdr
  • #13 16837519
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Faktycznie data nie była ustawiona, ale jest to trochę zaskoczeniem dla mnie, że jednym z błędów było coś takiego błahego :D
    Jeśli chodzi o instalację libncurses5-dev to nie jestem w stanie zainstalować tego pakietu automatycznie gdyż nie posiadam internetu, a więc jestem w punkcie wyjścia...
  • #14 16842461
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Męczę nadal ten temat. Obecnie jestem na etapie ręcznego doinstalowania "libncurses5-dev", o którym wspominał kolega PDT. Pobrałem paczkę libncurses5-dev.deb przy pomocy komputera z jakieś strony Debiana. Jej instalacja poleceniem "dpkg" spowodowała pojawienie się błędu związanego z brakiem kolejnego pakietu - libtinfo5. Ten z kolei potrzebuje jeszcze coś innego itp, itd. Darowałem sobie tą instalację na piechotę i pobrałem cały pakiet ncurses (5.9-10) i jeśli dobrze rozumiem to on powinien zawierać w sobie wszystko to co potrzebne jest dla tego "libncurses5-dev", wraz z nim. Paczka jest w formie archiwum, które wypakowałem.
    W necie znalazłem poradnik jak coś takiego zainstalować - najpierw wywołuje się plik czy tam polecenie "configure", póżniej "make" na końcu "make install". Gdy wydałem polecenie make wszystko leciało ładnie, pięknie, zasypując przez kilka minut konsole kolejnymi krokami. Niestety na koniec pojawił się błąd:

    make[1]: warning: Clock skew detected. Your build may be incomplete.
    make[1]: Leaving directory `/mnt/karta/ncurses-5.9/c++'
    make: warning: Clock skew detected. Your build may be incomplete.

    Ktoś wie co to oznacza?
  • Pomocny post
    #15 16843274
    PDT
    Poziom 24  
    Posty: 511
    Pomógł: 79
    Ocena: 50
    Kamil 1 napisał:
    Niestety na koniec pojawił się błąd:

    make[1]: warning: Clock skew detected. Your build may be incomplete.
    make[1]: Leaving directory `/mnt/karta/ncurses-5.9/c++'
    make: warning: Clock skew detected. Your build may be incomplete.

    Ktoś wie co to oznacza?

    Już poprzednio sygnalizowałem problem z ustawieniem czasu. Ten błąd jest sygnalizowany gdy 'make' znajdzie plik którego czas modyfikacji jest 'w przyszłości'. Sygnalizuje wykrycie cofnięcia czasu systemowego.
    Płytki wyposażone w sprzętowy RTC odczytują podczas startu czas początkowy. W tym przypadku trzeba ręcznie 'date' ustawić.
    Po doinstalowaniu sieci to już nie będzie stanowilo problemu, 'ntpdate' zaczyta z netu.
  • #16 16843971
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Tak, wiem że kolega o tym wspominał już wcześniej i wziąłem sobie to do serca ustawiłem czas za pomocą polecenia date. Miło to pojawił się ten błąd o którym pisałem więc chyba to nie będzie problem nastawy zegara.

    Dodano po 3 [godziny] 23 [minuty]:

    Ok, sukces. Raz jeszcze wgrałem świeży system na tą płytkę i wykonałem wszystko po kolei, włącznie z ustawieniem czasu oraz doinstalowaniem pakietu ncurses-5.9 i tym razem się udało - po wydaniu polecenia "make menuconfig" pojawiło się to okno konfigurujące kernel :)

    Mam teraz takie pytanie, kolega PDT wspomniał o konfiguracji wstępnej za pomocą polecenia "make multi_v7_defconfig", w wyniku czego tworzony jest plik .config
    Czy jeśli teraz w tym oknie konfiguracji kernela, wczytam za pomocą opcji "load" tą wygenerowaną konfigurację, to nie będę musiał modyfikować tego kernela? Czy jednak pasowałoby coś pozmieniać? Jeśli się obejdzie bez modyfikacji to dla mnie lepiej bo mogę jeszcze coś zepsuć :P

    Dodano po 27 [minuty]:

    Próbuję skompilować jądro bez modyfikacji konfiguracji kernela.
    W jakimś poradniku wyczytałem, że należy wydać komendę "make all" aby skompilować jądro. Tak też robię, z tym, że przekierowuję wynik kompilacji do pliku "wynik.txt" - myślę, że trochę to przyśpieszy proces gdyż procesor zajmie się samą kompilacją a nie dodatkowym pchaniem całego przebiegu kompilacji przez terminal (mowa tu o fizycznym UARTcie). Niestety już na dzień dobry pojawił się jakiś błąd... oto on:

    - Linux (linaro) - instalacja sterownika karty wifi

    Wybaczcie, że sam sobie nie radzę z tymi błędami, ale nie posiadam takiej wiedzy niestety...
  • #17 16846878
    PDT
    Poziom 24  
    Posty: 511
    Pomógł: 79
    Ocena: 50
    Widzę że robisz pewne postępy, a że pierwszy raz to i błędy też.
    UWAGA: Wiele porad dostępnych w necie dotyczy kompilacji skrośnej kernela (kompilujemy na PC a uruchamiamy na ARM). To nie ten przypadek.

    Ale krótko do rzeczy, zamiast make multi_v7_defconfig lepiej będzie utworzyć plik .config z zawartością:
    https://raw.githubusercontent.com/powermcu/ro...arm/configs/marsboard_rk3066_sdcard_defconfig
    To jest konfiguracja kernela 3.0.8+ dostosowana do tej płytki marsboard. Większość ustawień nie uległa zmianie.

    Kompilacji dokonujemy za pomocą poleceń:
    make zImage stałe jądro, trzeba je skopiować z arch/arm/boot/zImage do /boot (tak jest u mnie, miejsce zależy od loadera)
    make modules moduły ładowalne
    make modules_install instalacja modułów w docelowym /lib/modules/...
  • #18 16849094
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Mam pytanie, czy po utworzeniu tego pliku .config z tą zawartością z linku, należy wydać polecenie "make menuconfig" i tam wczytać ten plik za pomocą opcji load?

    Jeśli robię tak, że użyję polecenia "make menuconfig" i wczytam plik .config za pomocą opcji load, to wychodząc z tego okna konfiguracyjnego przez podwójne wciśnięci ESC, pojawia się pytanie czy chcę zapisać bieżącą konfigurację, więc zapisuję. Później wydaję polecenie "make zImage" i otrzymuję błędy

    - Linux (linaro) - instalacja sterownika karty wifi

    Jeśli jednak, utworzę ten plik .config z tą zawartością z linku i już nie będę używał polecenia "make menuconfig" tylko do razu wydam polecenie "make zImage" to mam wtedy jakiś dodatkowy proces konfiguracji w terminalu który wygląda tak:

    - Linux (linaro) - instalacja sterownika karty wifi

    Pytanie który sposób jest prawidłowy?
  • #19 16849573
    PDT
    Poziom 24  
    Posty: 511
    Pomógł: 79
    Ocena: 50
    Od czasu kernela 3.0.8 do 4.xx przybyło/zmieniło się kilka opcji, pierwszy sposób powoduje przyjęcie ich wartości domyślnych, zwykle dobrych.

    Trzeba z .config usunąć te dwie linijki, dotyczą kompilacji skrośnej:
    CONFIG_CROSS_COMPILE="arm-linux-gnueabi-"
    CONFIG_LOCALVERSION="+"
  • #20 16849940
    Kamil 1
    Poziom 16  
    Posty: 434
    Pomógł: 1
    Ocena: 17
    Dziękuję za zaangażowanie i pomoc, usunąłem te dwa wpisy z pliku .config, jednak nadal mam z tym problem :/

    Może raz jeszcze napiszę jak to robię - utworzyłem plik .config z tą zawartością która jest w linku zamieszczonym przez kolegę. Tak przy okazji wspomnę, że plik ten ma wtedy nagłówek:
    #
    # Automatically generated make config: don't edit
    # Linux/arm 3.0.8 Kernel Configuration
    #
    Następnie wykonuję polecenie "make menuconfig" i od razu wczytuję ten plik. Nic nie modyfikując wychodzę z tego edytora i potwierdzam chęć zapisania zmian.
    Teraz nagłówek pliku wygląda tak:
    #
    # Automatically generated file; DO NOT EDIT.
    # Linux/arm 4.9.63 Kernel Configuration
    #
    Tak więc widać, że plik został nadpisany, a więc pewnie też dodane zostały jakieś nowe wpisy do pliku związane z tą wersją kernela 4.9.63
    Następnie usuwam z tak powstałego pliku .config, te dwa wpisy odnoszące się do kompilacji skrośnej. I wykonuję kompilację poleceniem "make zImage".

    W rezultacie otrzymuję
    - Linux (linaro) - instalacja sterownika karty wifi
    Na początku wyrzuca błędy z ngcc, ale idzie dalej i pyta... o to co usunąłem...

    A może łatwiej będzie wykonać kompilację skrośną, na PC?

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik zainstalował system Linux Linaro na płytce z procesorem RK3066 i chce zainstalować sterownik do modułu WiFi RT5370. System wykrywa moduł, ale nie ma odpowiednich sterowników. W trakcie dyskusji poruszono kwestie związane z plikiem Makefile, brakiem gniazda Ethernet, oraz koniecznością aktualizacji jądra systemu, ponieważ obecna wersja (3.0.36+) jest zbyt stara. Użytkownik otrzymał wskazówki dotyczące kompilacji nowszego jądra (4.9.63) oraz instalacji pakietu libncurses5-dev, co było utrudnione z powodu braku dostępu do internetu. Po kilku próbach i błędach, użytkownik zdołał skonfigurować jądro i uzyskał dostęp do opcji konfiguracji, jednak nadal napotykał problemy z błędami kompilacji, które były związane z ustawieniem czasu systemowego oraz z nieprawidłowymi wpisami w pliku konfiguracyjnym.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA