You are not logged in.
I have a fresh install on an SSD and while the boot time is really fast, it takes up to 120 seconds after my X is up for the wireless network interface to come up (and connect). This is a pretty long time and I'm wondering if there is anything I can do to speed it up? The systemd-analyze output seems pretty fine to me, but I'm basically a newbie still:
860ms man-db.service
734ms systemd-modules-load.service
472ms systemd-journal-flush.service
232ms systemd-journald.service
151ms systemd-vconsole-setup.service
94ms systemd-tmpfiles-setup-dev.service
79ms systemd-random-seed.service
58ms systemd-tmpfiles-clean.service
52ms systemd-udevd.service
46ms systemd-logind.service
45ms keyboardctl.service
41ms alsa-restore.service
40ms systemd-user-sessions.service
36ms polkit.service
36ms home.mount
29ms wpa_supplicant.service
28ms rpcbind.service
26ms shadow.service
25ms systemd-fsck@dev-disk-by\x2duuid-26d19429\x2d5814\x2d40b5\x2da640\x2db76399d77ce7.service
21ms logrotate.service
20ms systemd-udev-trigger.service
19ms systemd-fsck@dev-disk-by\x2duuid-ef67fae8\x2d2715\x2d4ad3\x2da6ac\x2d222aea1fdf36.service
13ms systemd-rfkill@rfkill1.service
13ms dev-disk-by\x2duuid-226d9aa0\x2d8559\x2d450b\x2db95a\x2d3de11edce812.swap
12ms systemd-rfkill@rfkill0.service
11ms ntpd.service
11ms dev-hugepages.mount
11ms user@1000.service
10ms systemd-backlight@backlight:acpi_video0.service
10ms tmp.mount
9ms dev-mqueue.mount
8ms kmod-static-nodes.service
7ms boot.mount
5ms systemd-remount-fs.service
4ms systemd-sysctl.service
4ms systemd-update-utmp.service
3ms systemd-tmpfiles-setup.service
3ms sys-kernel-debug.mount
3ms rtkit-daemon.service
3ms systemd-rfkill@rfkill3.service
2ms sys-kernel-config.mount
1ms systemd-rfkill@rfkill2.service
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.graphical.target @991ms
└─multi-user.target @991ms
└─rpcbind.service @962ms +28ms
└─basic.target @922ms
└─sockets.target @922ms
└─rpcbind.socket @921ms
└─sysinit.target @921ms
└─systemd-update-utmp.service @916ms +4ms
└─systemd-tmpfiles-setup.service @912ms +3ms
└─local-fs.target @912ms
└─home.mount @875ms +36ms
└─systemd-fsck@dev-disk-by\x2duuid-26d19429\x2d5814\x2d40b5\x2da640\x2db76399d77ce7.service @848ms +25ms
└─dev-disk-by\x2duuid-26d19429\x2d5814\x2d40b5\x2da640\x2db76399d77ce7.device @837ms
Any advice? I've already disabled the ModemManager, I've changed the "Type" of the NetworkManager service to Simple and based on some stuff I found online, I've disabled IPv6 for all my connections. None of those seems to do anything.
Last edited by Airblader (2015-02-02 11:09:10)
Offline
graphical.target @698ms
└─multi-user.target @698ms
└─ntpd.service @669ms +28ms
└─network.target @667ms
*** └─dhcpcd.service @610ms +52ms ***
└─basic.target @610ms
└─sockets.target @610ms
└─dbus.socket @610ms
└─sysinit.target @609ms
└─systemd-update-utmp.service @605ms +3ms
└─systemd-tmpfiles-setup.service @599ms +6ms
└─local-fs.target @598ms
└─boot.mount @590ms +7ms
└─systemd-fsck@dev-disk-by\x2duuid-9669\x2d102D.service @537ms +53ms
└─dev-disk-by\x2duuid-9669\x2d102D.device @536ms
Is 52 milliseconds quick enough?
This only works for a single wireless access point:
Set up /etc/wpa_supplicant/wpa_suppicant.conf like this (back up the original file first!):
# tee /etc/wpa_supplicant/wpa_supplicant.conf <<< "ctrl_interface=DIR=/run/wpa_supplicant"
# tee -a /etc/wpa_supplicant/wpa_supplicant.conf <<< $(wpa_passphrase <your SSID> <your password>)
And then disable all of your current internet-related .services and enable dhcpcd with:
# systemctl enable dhcpcd.service
This will also give you a plug-and-play ethernet connection.
Jin, Jîyan, Azadî
Offline
Hi,
thanks But I think you misunderstood the problem (and maybe I wasn't very clear, sorry). When I boot, it takes about two minutes for my wifi interface to so much as even show up – not for the connection to be made. dhcpcd isn't involved at that point yet either. Having done some more digging, I found
[ 62.115790] iwlwifi 0000:03:00.0: Direct firmware load failed with error -2
[ 62.115797] iwlwifi 0000:03:00.0: Falling back to user helper
[ 63.821876] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21e6.hcd not found
[ 122.260168] iwlwifi 0000:03:00.0: loaded firmware version 9.221.4.1 build 25532 op_mode iwldvm
From what I understand, it is looking for a wrong version of the firmware – twice, each time with a 60 second timeout. Then it finally finds the correct firmware, loads it and from that point on everything is going quickly. This raises the question: how do I make it find the correct one right away?
Last edited by Airblader (2015-02-02 18:31:51)
Offline
Ah of course, sorry.
What is your hardware?
Jin, Jîyan, Azadî
Offline
I'm on a Lenovo Thinkpad T530. The network card is Intel Corporation Centrino Ultimate-N 6300. Let me know if you need anything else.
Offline
That device needs iwlwifi-6000-ucode-17.{176,193,221}.4.1.tgz
https://wireless.wiki.kernel.org/en/use … rs/iwlwifi
Do you have those?
They are available here:
http://git.kernel.org/cgit/linux/kernel … rmware.git
Jin, Jîyan, Azadî
Offline
Thanks. For the sake of understanding how this is solved: where did you look up what version my device needs?
Moving on, how do I check whether I have this particular version? I can run
cd /lib/firmware && find . -name "*iwlwifi*" | grep 6000
and get
./iwlwifi-6000g2a-5.ucode
./iwlwifi-6000g2a-6.ucode
./iwlwifi-6000g2b-5.ucode
./iwlwifi-6000g2b-6.ucode
./iwlwifi-6000-4.ucode
Doesn't seem like it's in there, right? As for the repository you linked, that's just the linux-firmware package which I do have installed (as the package that's installed by default). Why wouldn't I have the correct driver version then?
Last edited by Airblader (2015-02-02 19:07:25)
Offline
where did you look up what version my device needs?
I just used startpage.com & searched for "<your card> linux" and it was near the top of the list
It looks like you have the right file (6000-4) so it should work OK (I may be wrong about this -- hopefully other forum members will correct me).
Can you check if the card is seated and connected properly?
It's probably best to post:
dmesg|grep iwl
Or maybe even the whole dmesg output via sprunge.
EDIT: https://wiki.archlinux.org/index.php/Le … nkPad_T530
Last edited by Head_on_a_Stick (2015-02-02 19:16:47)
Jin, Jîyan, Azadî
Offline
Sure, here's the entire output: http://pastebin.com/8nawQfiv
And here the grep:
[ 2.150765] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
[ 2.151864] iwlwifi 0000:03:00.0: irq 46 for MSI/MSI-X
[ 2.155374] iwlwifi 0000:03:00.0: Direct firmware load failed with error -2
[ 2.155377] iwlwifi 0000:03:00.0: Falling back to user helper
[ 62.329286] iwlwifi 0000:03:00.0: Direct firmware load failed with error -2
[ 62.329293] iwlwifi 0000:03:00.0: Falling back to user helper
[ 122.472999] iwlwifi 0000:03:00.0: loaded firmware version 9.221.4.1 build 25532 op_mode iwldvm
[ 122.512828] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUG disabled
[ 122.512833] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[ 122.512835] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TRACING enabled
[ 122.512838] iwlwifi 0000:03:00.0: Detected Intel(R) Centrino(R) Ultimate-N 6300 AGN, REV=0x74
[ 122.512998] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[ 122.534213] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[ 122.593391] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[ 122.600035] iwlwifi 0000:03:00.0: Radio type=0x0-0x3-0x1
[ 122.818869] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[ 122.825454] iwlwifi 0000:03:00.0: Radio type=0x0-0x3-0x1
I don't seem to have the problem when booting Ubuntu (granted, Ubuntu boots longer, but it boots nowhere near two minutes to cover up the time it takes iwlwifi to load; I can try running dmesg there, too, though, to see what is happening).
Offline
I've just checked. Ubuntu has the same problem, but it doesn't have the timeout and just immediately moves on. A quick google search later, I learned about /sys/class/firmware/timeout, which on my system is indeed set to 60. Would I just be able to set this lower (or even 0)?
Offline
Would I just be able to set this lower (or even 0)?
Try it and find out
Jin, Jîyan, Azadî
Offline
I did (echo 1 | sudo tee /sys/class/firmware/timeout). The value is written, but when I rebooted it was reset back to 60.
How can I make the change persistent?
Also, if someone can tell me whether this would be a horrible thing to do, I'd appreciate it too – not that by changing this I'm breaking ten other things.
Last edited by Airblader (2015-02-02 19:37:53)
Offline
At least overwriting the timeout does in fact help if I just manually remove and reload the iwlwifi module. It feels like a hack and if someone has a real solution, I'd be happy to hear or investigate it further. For now, changing the timeout would make booting acceptable (plus, Ubuntu is doing the same, too – so I was doing it this way for a long time without knowing it).
My problem is, though, how I can set the value in sysfs before the module is attempted to be loaded?
Offline
Trying to write an udev rule to set the timeout, I found this bug report: https://bugs.launchpad.net/ubuntu/+sour … ug/1398458
Comment #8 has a udev rule which, instead of overwriting the timeout, changes the loading attribute of the hanging iwlwifi module, causing it to abort the timeout immediately. This seems to work for me
Thanks for your help, it is very much appreciated! Sometimes just talking to someone about it makes you go in the right direction.
Last edited by Airblader (2015-02-02 21:34:38)
Offline
You're welcome, glad I could help
Jin, Jîyan, Azadî
Offline