인텔 무선 어뎁터 펌웨어..

김밥의 이미지

아래에 나와있는 하드웨어 상태나 오류들을 바탕으로 현재 제가 가지고 있는 컴퓨터가 가지고
있는 문제가 펌웨어와 관련이 있지 않나 생각하게 되었습니다.

dmesg | grep iwl
[    2.819550] iwlwifi 0000:00:14.3: loaded firmware version 34.0.0 op_mode iwlmvm
[    2.833065] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x338
[    7.900012] iwlwifi 0000:00:14.3: Failed to load firmware chunk!
[    7.900015] iwlwifi 0000:00:14.3: iwlwifi transaction failed, dumping registers
[    7.900016] iwlwifi 0000:00:14.3: iwlwifi device config registers:
[    7.900050] iwlwifi 0000:00:14.3: 00000000: 34f08086 00100406 02800030 00800010 17114004 00000060 00000000 00000000
[    7.900051] iwlwifi 0000:00:14.3: 00000020: 00000000 00000000 00000000 00348086 00000000 000000c8 00000000 000001ff
[    7.900052] iwlwifi 0000:00:14.3: iwlwifi device memory mapped registers:
[    7.900086] iwlwifi 0000:00:14.3: 00000000: 00489008 00000040 00000000 00000000 00000000 00000000 00000000 00000000
[    7.900087] iwlwifi 0000:00:14.3: 00000020: 00000011 0c040005 00000332 d55555d5 d55555d5 d55555d5 80008040 001f0040
[    7.900106] iwlwifi 0000:00:14.3: Could not load the [0] uCode section
[    7.900110] iwlwifi 0000:00:14.3: Failed to start INIT ucode: -110
[    7.913089] iwlwifi 0000:00:14.3: Failing on timeout while stopping DMA channel 8 [0x0bad1122]
[    7.925547] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -110

rfkill list all
0: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: phy1: Wireless LAN
	Soft blocked: no
	Hard blocked: no

저의 노트북 모델은 hp사의 15-cs3012tx이며 우분투 버전은 16.04 LTS입니다.
이 제품의 세부사항에 대해 검색한 결과
네트워크가 Intel® Wireless-AC 9560 802.11a/b/g/n/ac (2x2) Wi-Fi® and Bluetooth® 5 Combo
이라는 것을 알게 되었습니다. 그래서 해당 AC 9560에 해당하는 펌웨어를 받아서 설치를 하려고 하였습니다.

펌웨어에 같이 첨부되어있는 문서는 이러했습니다.

1. OVERVIEW
 
The file iwlwifi-5150-2.ucode provided in this package must be 
present on your system in order for the Intel Wireless WiFi Link
AGN driver for Linux (iwlagn) to operate on your system.
 
The "-2" in the filename reflects an interface/architecture version number.
It will change only when changes in new uCode releases make the new uCode
incompatible with earlier drivers.
 
On adapter initialization, and at varying times during the uptime of 
the adapter, the microcode is loaded into the memory on the network 
adapter.  The microcode provides the low level MAC features including 
radio control and high precision timing events (backoff, transmit, 
etc.) while also providing varying levels of packet filtering which can 
be used to keep the host from having to handle packets that are not of 
interest given the current operating mode of the device.
 
2. INSTALLATION
 
The iwlagn driver will look for the file iwlwifi-5150-2.ucode using the 
kernel's firmware_loader infrastructure.  In order to function 
correctly, you need to have this support enabled in your kernel.  When 
you configure the kernel, you can find this option in the following 
location:
 
        Device Drivers ->
                Generic Driver Options ->
                        Hotplug firmware loading support
 
 
You can determine if your kernel currently has firmware loader support 
by looking for the CONFIG_FW_LOADER definition on your kernel's 
.config.
 
In addition to having the firmware_loader support in your kernel, you 
must also have a working hotplug and udev infrastructure configured.  
The steps for installing and configuring hotplug and udev are very 
distribution specific. 
 
Once you have the firmware loader in place (or if you aren't sure and 
you just want to try things to see if it works), you need to install 
the microcode file into the appropriate location.
 
Where that appropriate location is depends (again) on your system 
distribution.  You can typically find this location by looking in the 
hotplug configuration file for your distro:
 
	% grep \"^FIRMWARE_DIR\" /etc/hotplug/firmware.agent
 
This should give you output like:
 
	FIRMWARE_DIR=/lib/firmware
 
If it lists more than one directory, you only need to put the 
microcode in one of them.  In the above example, installation is 
simply:
 
	% cp iwlwifi-5150-2.ucode /lib/firmware
 
You can now load the driver (see the INSTALL and README.iwlwifi provided with
the iwlwifi package for information on building and using that driver.)

일단 오버뷰에있는 내용은 저기에 있는 항목이 여기에 없는 것 같아서 일단 넘어가고
설치 방법이 설치되어있는 부분을 읽어보니

% grep \"^FIRMWARE_DIR\" /etc/hotplug/firmware.agent
 
This should give you output like:
 
	FIRMWARE_DIR=/lib/firmware

위의 명령어를 치면 저런식으로 나와야 한답니다. 그런데 제가 실행해본 결과
grep \"^FIRMWARE_DIR\" /etc/hotplug/firmware.agent
grep: /etc/hotplug/firmware.agent: No such file or directory

펌웨어와 관련된 디렉토리의 경로가 아닌 그런 경로를 찾을 수 없다고 나왔습니다.
요즘 우분투는 펌웨어를 설치할 때, 이런 방식이 아닌 새로운 방식으로 설치하는 건지 모르겠습니다.
뭔가 이 인텔 무선 9650 부품이 와이파이와 블루투스가 관련되있는 것같은데..
펌웨어 설치와 이 부품의 오작동에 대해 도움을 받고 싶습니다..

답변에 대해 미리 감사의 말씀 드립니다.

Stephen Kyoungwon Kim@Google의 이미지

아래 글에도 말씀드렸듯이 18.04를 native로 깔고 그 위에 virtualbox를 올리는 걸 생각해 보세요. 16.04 입장에서는 매우 generic한 하드웨어를 상대하게 되므로 설치에 성공할 가능성이 좀더 높을 겁니다. 더 낫게는, 아예 16.04가 설치된 virtualbox 이미지가 어딘가 있을 테니 그걸 받으셔도 됩니다. 이 수업이야 16.04를 요구하지만 낮은 버전이어서 어차피 버전을 올려야 될 텐데, 그 얘기는 나중에 시스템의 상당 부분을 엎어야 한다는 의미일 거예요. 그럼 native 설치보다 가상 머신 쪽이 낫다고 생각합니다.

대충 에러를 보니 (저는 전문가는 아니고 그냥 유저인데) 펌웨어 설치하라는 얘기일 수 있겠네요. 보통은 직접 받아서 깔기 보다는 패키지로 설치하시는 게 좋습니다. 그 배포판에 맞게 설정까지 자동으로 되니까요.

linux-firmware가 패키지 이름일 것 같습니다.
https://packages.ubuntu.com/search?suite=xenial&arch=i386&mode=filename&searchon=contents&keywords=iwlwifi

김밥의 이미지

저도 새 버전을 처음에 깔았지만, 수업하시는 분이 안된다고 하셔서 16.04 버전을 깔게 되었습니다.

낮은 버전이라 가상 머신을 사용하고 싶었지만, 우분투에서 사용할 프로그램이 무겁다고하셔서 가상 머신 사용이 어려운 상황입니다.

주신 링크로 들어가서 한번 받아보고 해야겠네요!!

바쁜 시간중에 답변 달아주셔서 감사합니다.ㅎㅎ

익명 사용자의 이미지

정 해결이 어렵고 급하면, USB 무선랜카드.. 이런거 장착하는게, 시간 절약되어 오히려 이득일 수 있습니다.
아니면, 핸드폰을 USB 로 연결하구, 핸드폰을 USB 무선 랜카드처럼 쓰는 방법도 있습니다.
USB 무선랜카드나, 핸드폰이 정상적으로 작동할지는 해봐야 알 수 있습니다.

김밥의 이미지

usb 랜카드를 사용하면 급한 불은 끌수 있겠네요.. ㅎㅎ

시간 날때 다시 한번 찾아보거나 해야겠네요..

Stephen Kyoungwon Kim@Google의 이미지

상식적으로 생각해서 16.04가 나온 게 2016년입니다. ROS를 돌릴 거라고 얘기하신 거 같은데, 그게 16.04에 당대 하드웨어 위에 돌아가는 거라면, 지금 하드웨어 위에서 virtualbox를 사용해도 충분히 성능이 나올 거에요. 버추얼 머신 인스턴스를 만들 때 충분한 크기의 램을 설정하시고 코어가 여럿 있다면, 그것도 하나 대신 여러 개를 쪼개어 할당해 주세요.

어지간하면 버추얼 머신 위에 돌리는 게 나을 겁니다. 오래된 머신 위에 굳이 드라이버를 잡아서 올리고 배우는 게 있느냐가 문제인데, 저라면 그 시간에 다른 데 투자할 것 같습니다.

정말 속도가 안 난다면 차라리 docker 사용법을 배워서 ubuntu:16.04 이미지를 다른 최신 리눅스 배포판(우분투 최신 릴리즈 포함) 위에서 돌리셔도 되고요. docker는 지금은 물론 앞으로도 현업에서 사용하실 기회가 드물지 않게 있을 거에요. 시간 들일 가치가 있다고 생각합니다.

그리고 리눅스의 대부분의 배포판에서 소프트웨어를 설치하실 때, 가급적이면 그 배포판의 패키지 매니저를 이용하셔야 합니다. 우분투라면 apt를 쓰시거나 dpkg를 쓰셔야 합니다. 다른 프로그램을 설치하거나 제거할 때, 패키지 매니저 밖에서 변경된 시스템 파일이 있다면 곤란한 경우가 생길 수도 있어요.

저는 Gentoo를 쓰니까 소스 코드를 git이나 svn, tar.gz로 굳이 받아 컴파일 설치하는 경우가 거의 없습니다만, 굳이 해야 한다면, 소스를 그대로 make, make install 하는 대신에 패키지 매니저가 인식하는 패키지로 만들어서 설치합니다.

김밥의 이미지

저도 굳이 16.04 버전을 안쓰고 새로운 버전에서 ROS를 돌리거나 가상머신을 쓰고 싶습니다... ㅠㅠ

하지만 수업을 진행하시는 분께서 이유는 잘 모르겠지만, 프로그램이 무겁다는 이유외 다른 몇몇가지 이유로 가상머신을 쓰지 말라고 하셨으며, 16.04 버전에서 수업을 꼭 진행하신다고 하셔서 어쩔 수 없이 이렇게 글을 올리고 도움을 받고 싶었습니다.

이 수업이 끝마쳐지고 추후에 ROS를 다룰 일이 생긴다면, 16.04 버전에서 쓰지 않고 차라리 새로 릴리즈된 버전에서 다룰 것 같습니다.

이 사이트에서도 글을 올려보고 다른데서도 질문을 올려봤지만, 이번 일을 계기로 많은 시행착오를 겪었지만,

제가 생각하기에도 새로운 버전을 깔던가 가상머신을 사용하는 것이 가장 확실한 해결책인것 같습니다.

이번 일을 계기로 우분투라는 운영체제에 대해 더 많이 깊게 알 수 있었습니다!

Stephen Kyoungwon님을 포함하여 저의 글에 답변을 달아주신 모든 분들께 감사하다는 말씀을 드려야겠네요.

이 분야에서 아는게 별로 없어 답변해주실 때, Stephen Kyoungwon님도 그렇고 많이

답답하셨을 거라 생각합니다.

그래도 이렇게 긴 장문의 답변을 달아주시고 조언해주셔서 감사합니다!!!!! ㅎㅎ

Stephen Kyoungwon Kim@Google의 이미지

가르치는 분이 교수인지 현직/전직 개발자인지 모르겠는데 요구 사항이 좀 이상한 것 같네요. 어차피 실습 따라가고 숙제 할 수 있는 거면 되는 거 아닌가요? 제가 그 수업을 들으면 그냥 가상 머신을 쓸 거 같습니다. 교수가 노트북을 물리적으로 열어 굳이 검사하지 않는 다음에야 알 방법이 있나요?

김밥의 이미지

제가 사용하고 있는 ROS버전이 kinetic 버전어서 진행하시는 분이 16.04버전을 고수하시는 거였네요..

제가 걸어놓은 링크를 보아하니, 이 버전은 우분투 16.04 버전에서만 지원하고

18.04버전에서 구동시킬려면 따로 뭘 해야하는것 같네요..

그래도 제 개인적인 생각으로 가상머신에서 돌리면, 훨씬 편할 것 같은데.. 뭔가 많이 아쉽네요..

https://answers.ros.org/question/297008/how-could-i-install-ros-on-ubuntu-18/

Stephen Kyoungwon Kim@Google의 이미지

가상머신에서 안 된다고 하는 건 그 강의를 하는 분이 잘 몰라서일 겁니다. 혹은 문제가 생겼을 때 자기가 잘 모르는 환경이면 어떻게 해결해야 할지 몰라서 겁을 내고 있거나요.

보통 옛 버전이 옛 배포판에서만 되는 건 의존관계가 있는 소프트웨어의 호환성 때문일 거예요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.