web-dev-qa-db-ja.com

LinuxドライバーAsus PCE-N53(Ralink RT5592チップセット)用のワイヤレスドライバーをコンパイルできない

私は以前、このドライバーを古いカーネルであると信じてコンパイルしました。しかし、私は現在15.10にいるので、それを理解できません。

dylan@xaelah:~$ uname -r
4.2.0-18-generic

ここSudo lshwの出力です

here からソースをダウンロードしました

次に、ディレクトリにCDを発行してSudo makeを発行します
出力は次のとおりです。

make -C tools
make[1]: Entering directory '/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory '/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/tools'
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/tools/bin2h
cp -f os/linux/Makefile.6 /home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/Makefile
make -C /lib/modules/4.2.0-18-generic/build SUBDIRS=/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux modules
make[1]: Entering directory '/usr/src/linux-headers-4.2.0-18-generic'
  CC [M]  /home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.o
In file included from /home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/include/rtmp_os.h:44:0,
                 from /home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/include/rtmp_comm.h:69,
                 from /home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/include/rt_config.h:33,
                 from /home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.c:28:
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.c: In function ‘RTMPQueryInformation’:
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.c:3953:30: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
    DBGPRINT(RT_DEBUG_TRACE, ("sizeof UCHAR=%d, channel=%d \n", sizeof(UCHAR), p
                              ^
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/include/os/rt_linux.h:665:16: note: in definition of macro ‘DBGPRINT_RAW’
         printk Fmt;               \
                ^
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.c:3953:4: note: in expansion of macro ‘DBGPRINT’
    DBGPRINT(RT_DEBUG_TRACE, ("sizeof UCHAR=%d, channel=%d \n", sizeof(UCHAR), p
    ^
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.c: In function ‘RTMPIoctlShow’:
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.c:4896:85: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
 intf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, _
                                                                     ^
/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.c:4896:95: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
 , size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
                                                                     ^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.o' failed
make[2]: *** [/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux/../../sta/sta_cfg.o] Error 1
Makefile:1398: recipe for target '_module_/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux' failed
make[1]: *** [_module_/home/dylan/Downloads/patched-Asus-PCE-N53-linux-driver-master/os/linux] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.2.0-18-generic'
Makefile:384: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2

明らかに私はSudo make installできない

また、前のビルドで表示されたタイプの不一致やその他の警告についても心配していませんが、それでも機能します。 Sudo make -iも試してみました

ビルドの基本、カーネルソース、ヘッダーをダウンロードしました...

何か他のものが必要な場合は教えてください。 Googleで検索したところ、同様の問題が見つかりましたが、解決策は見つかりませんでした。このサイトには this さえありますが、答えはなく、他の選択肢は機能しません。

助けていただければ幸いです!

編集:

また、次のようにmakeを実行してみました-

Sudo make RT_CFLAGS="-Wno-error=date-time"

同じエラー....

それからSudo make cleanを実行してからSudo make RT_CFLAGS="-Wno-error=date-time" -iを実行しました ここはpastbinです

1
Dylan

私は彼女の上にそれをコンパイルすることができます:

$ lsb_release -dc
Description:    Ubuntu 15.10
Codename:   wily

$ uname -r
4.2.0-18-generic

コンパイルにSudoを使用しないことをお勧めします。以下の手順が失敗した場合、最初からやり直してください。

  1. Gitリポジトリを複製しました。

    git clone https://github.com/unused/patched-Asus-PCE-N53-linux-driver.git
    
    cd patched-Asus-PCE-N53-linux-driver/
    
  2. -Wno-error=date-timeをコンパイルフラグに追加します

    vim os/linux/config.mk +178
    

    WFLAGS:=を探します

    WFLAGS := -DAGGREGATION_SUPPORT -DPIGGYBACK_SUPPORT -DWMM_SUPPORT  -DLINUX -Wall -Wstrict-prototypes -Wno-trigraphs -Wno-error=date-time
    
  3. コンパイル

    make
    

    この時点で、モジュールは正常にコンパイルされました。

    ls -l os/linux/rt5592sta.ko

    -rw-rw-r-- 1 user user 1767056 Nov 21 10:29 /home/user/Desktop/sand_box/patched-Asus-PCE-N53-linux-driver/os/linux/rt5592sta.ko
    

    modinfo /home/user/Desktop/sand_box/patched-Asus-PCE-N53-linux-driver/os/linux/rt5592sta.ko

    filename:       /home/user/Desktop/sand_box/patched-Asus-PCE-N53-linux-driver/os/linux/rt5592sta.ko
    version:        2.6.0.0_20120326
    srcversion:     150B71061DC1EBE4DE31E22
    alias:          pci:v00001814d00005592sv*sd*bc*sc*i*
    depends:        
    vermagic:       4.2.0-18-generic SMP mod_unload modversions 
    parm:           mac:rt28xx: wireless mac addr (charp)
    

しかし、makeスクリプトが/tftpbootフォルダーにコピーしようとしたのは奇妙です。開発者が別のマシンでそれを更新/テストする簡単な方法を探していたのかもしれません。

LD [M]  /home/user/Desktop/sand_box/patched-Asus-PCE-N53-linux-driver/os/linux/rt5592sta.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.2.0-18-generic'
cp -f /home/user/Desktop/sand_box/patched-Asus-PCE-N53-linux-driver/os/linux/rt5592sta.ko /tftpboot
cp: cannot create regular file ‘/tftpboot’: Permission denied
Makefile:384: recipe for target 'LINUX' failed
make: *** [LINUX] Error 1

とにかく、残りのインストール手順を完了してみてください。関連する問題が発生した場合はお知らせください。

2
user.dz