web-dev-qa-db-ja.com

make:*** [モジュール]エラー2

私はubuntu 18.04にwifiドライバーをインストールしようとしていました。カーネル14.5およびhpラップトップ。私はこれらのコマンドに従いました:

    1. Sudo apt-get install build-essential dkms
    2.wget -d -c -O 'rtl8723de.Zip' https://github.com/smlinux/rtl8723de/archive/4.11-up.Zip

    3. unzip rtl8723de.Zip
    4.cd rtl8723de
    5.make

Makeを賞賛すると、この結果がターミナルに表示されます:

make Arch=x86_64 CROSS_COMPILE= -C /lib/modules/4.15.0-22-generic/build M=/home/praveen/rtl8723de  modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-22-generic'
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
  CC [M]  /home/praveen/rtl8723de/core/rtw_cmd.o
In file included from /home/praveen/rtl8723de/include/osdep_service.h:42:0,
                 from /home/praveen/rtl8723de/include/drv_types.h:32,
                 from /home/praveen/rtl8723de/core/rtw_cmd.c:22:
/home/praveen/rtl8723de/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/praveen/rtl8723de/include/osdep_service_linux.h:287:8: error: ‘_timer {aka struct timer_list}’ has no member named ‘data’
  ptimer->data = (unsigned long)cntx;
        ^~
/home/praveen/rtl8723de/include/osdep_service_linux.h:288:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
  init_timer(ptimer);
  ^~~~~~~~~~
  _init_timer
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/home/praveen/rtl8723de/core/rtw_cmd.o' failed
make[2]: *** [/home/praveen/rtl8723de/core/rtw_cmd.o] Error 1
Makefile:1552: recipe for target '_module_/home/praveen/rtl8723de' failed
make[1]: *** [_module_/home/praveen/rtl8723de] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-22-generic'
Makefile:1884: recipe for target 'modules' failed
make: *** [modules] Error 2

この問題を解決するには?

2
PRAVEEN YADAV

まず、操作不能なファイルを削除します。

Sudo rm -r rtl8723de*

次に、別の前提条件をインストールします。

Sudo apt update && Sudo apt -y install git

より良いファイルをクローンします:

git clone https://github.com/lwfinger/rtlwifi_new.git

次に、ドライバーをビルドします。

cd rtlwifi_new
make
Sudo make install
Sudo modprobe rtl8723de

これでワイヤレスが機能するはずです。

EDIT:Update Managerが新しいカーネルバージョン(linux-imageとも呼ばれる)をインストールするとき、要求された再起動後に再コンパイルします:

cd ~/rtlwifi_new
make clean
git pull
make
Sudo make install
Sudo modprobe rtl8723de
1
chili555

明らかに、コンピューターのデータ構造timer_listがソースで使用されているものと一致しないため、ダウンロードしたコードをコンパイルできません。ダウンロードしたドライバーがカーネルに適合していないようです(また、カーネルのバージョンが間違っています。uname -rが正しいカーネルバージョンを提供します)。

解決策はありませんが、 このページ を見ましたか?

0
frozar