You are not logged in.
Hello, wonderful community!
I'm a Linux newbie in general but was daring one day and decided to get arch linux onto my old Macbook Pro that I don't use anymore.
The model of the mac is MacBook Pro (16-inch, 2019) with the 2.3 GHz 8-Core Intel Core i9 processor and 2.3 GHz 1TB SSD. It also has a T2 security chip which I heard needs an additional linux support to run properly (to be able to use the internal keyboard; I figured this out the painful way where I got to the zsh shell prompt but couldn't type anything).
Currently, I'm stuck on the step of trying to connect to the internet. The error point, I suspect, is to be of some incorrect setup/corruption of the brcmfmac driver. Whenever I try to connect to the my network via
iwctland
station wlan0 connect SSID, it requires me to type the network passphrase. When I type in the correct passphrase, it returns Operation failed after around 2 seconds of waiting (similarly to this post). However, when I turn on my mobile hotspot and try connecting to it, it connects fine and I can start downloading stuff using pacman. And then once I
pacman -S networkmanager, I try starting NetworkManager by calling
systemctl start NetworkManagerwhich throws errors as below:
[ 2676.916497] ieee80211 phy0: brcmf_p2p_set_firmware: failed to update device address ret -52
[ 2676.920849] ieee80211 phy0: brcmf_p2p_create_p2pdev: set p2p_disc error
[ 2676.922242] ieee80211 phy0: brcmf_cfg80211_add_iface: add iface p2p-dev-wlan0 type 10 failed: err=-52
[ 2686.921516] ieee90211 phy0: brcmf_escan_timeout: timer expiredAnd then when I try to run
nmcli device wifi connect SSID --ask, it takes about 10~15 seconds to provide me with the
Password (802-11-wireless-security.psk): ********to which I erase the existing passcode and reenter the correct passcode (if not erase and reenter, it throws an error saying "secrets were required but not provided"). It makes me wait for about a minute and asks again for the password to which I provide again and it eventually times out and exits without throwing an error code at me.
I try checking for connection with ping archlinux.org but get
ping: archlinux.org: Temporary failure in name resolutionAny suggestions on what could be going wrong?
All of the steps I've taken from initializing my device to setting up a partition with MacOS and etc are below:
I reset the mac to factory settings after moving all of the important files out to my new mac
I followed the preinstallation guide from Mac T2 Linux Arch Support Guide and got the distro from the github repository linked in the guide.
I booted into the live ISO and started following the normal guide from section 1.5.
I ran ip link and rfkill as the guide tells me and nothing out of the ordinary happens
This is the point in which I try to run iwctl and fail
connect to my mobile hotspot with iwctl to update pacman and download networkmanager
try running nmcli device with networkmanager and fail and keep getting errors and just stuck here trying things from different reddit posts and forums
Things that may be worth mentioning:
I have tried to do this process multiple times to which I have failed and inevitably had to erase and set up the USB drive again with the iso file. I am not sure if this would corrupt anything in the USB drive but it has been booting linux properly everytime so I doubt it
When I run systemctl --status=failed
systemd-networkd-wait-online.service loaded failed failed Wait for Network to be Configuredshows up (with the other lines of systemctl text)
Thanks in advance for the help!
Last edited by spaghettyii (2025-08-20 22:16:31)
Offline
Welcome to hell
What's the output of "lspci -k" and do you have more luck w/ https://wiki.archlinux.org/title/Broadc … roadcom-wl ?
Online
Hi! Thanks for the quick reply,
The output of lspci -k shows (of what I think is relevant)
05:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4364 802.11ac Wireless Network Adapter (rev 04)
Subsystem: Apple Inc. Device 07bf
Kernel driver in use: brcmfmac
Kernel modules: brcmfmacIf you wanted the entire output, please let me know.
Also, I tried to work with the broadcom-wl package but cannot seem to get it to work? Or rather, I do not understand how to activate it properly.. I've tried for the entire day yesterday to do so but still am unsure of how to disable brcmfmac and enable broadcom-wl (if that even is what you suggested in the first place). I already did
pacman -S broadcom-wland tried to run NetworkManager again
nmcli device wifi connect SSID --askbut it didn't seem to change anything as it produced the same behavior as above with the password and timeout after 2 minutes.
How else could I proceed?
Offline
Or rather, I do not understand how to activate it properly..Or rather, I do not understand how to activate it properly..
Installing it should™ do but if this is a custom kernel (not https://archlinux.org/packages/core/x86_64/linux/ ) you'll need https://archlinux.org/packages/extra/x8 … m-wl-dkms/
See https://wiki.archlinux.org/title/Dynami … le_Support
lspci will then show which modules support the hardware and which one is currently in use, but you'll have to reboot (or unload the brcmfmac module and load wl manually)
And you might also need https://archlinux.org/packages/core/any … -broadcom/
Online
I tried getting the broadcom-wl-dkms package but pacman keeps complaining with
error: Partition / too full: 78827 blocks needed, 37166 blocks free
error: failed to commit transaction (not enough free disk space)
Errors occurred, no packages were upgradedI have looked around and have seen other people with similar issues. However, I am not sure if I should be doing some of the fixes suggested in those threads mainly because I think they are having issues in the installed linux system instead of the installer (which I'm having issues with).
I saw the output of df -B 4096 (my block sizes are 4096 Bytes) matter(?) so here it is.
df -B 4096
Filesystem 4K-blocks Used Available Use% Mounted on
dev 2011651 0 2011651 0% /dev
run 2033250 2480 2030770 1% /run
copytoram 3049876 227844 2822832 8% /run/archiso/copytoram
cowspace 65536 28370 37166 44% /run/archiso/cowspace
/dev/loop0 227072 227072 0 100% /run/archiso/airootfs
airootfs 65536 28370 37166 44% /
tmpfs 2033250 0 2033250 0% /dev/shm
tmpfs 2033251 0 2033251 0% /tmp
tmpfs 256 0 256 0% /run/credentials/systemd-journald.service
tmpfs 256 0 256 0% /run/credentials/systemd-resolved.service
tmpfs 256 0 256 0% /run/credentials/systemd-networkd.service
tmpfs 256 0 256 0% /run/credentials/getty@tty1.service
tmpfs 406650 2 406650 1% /run/user/0How else could I proceed?
Offline
Don't try to install that into the iso (the package is there anyway), you want to mount the root partition into /mnt and either "arch-chroot /mnt" or "pacman --sysroot /mnt …"
Online
Please correct my understanding here if I'm wrong, but does this mean that the process I am doing right now, the pre-installation phase, is done on the iso file (1GB ish download) that is on my external USB drive? Also if the package is in the iso anyway, why do I need to download it again with pacman? Also, what is the "root partition" in this case? Is it a region of memory in my USB drive or a partition I've made on my mac itself for Arch Linux to be downloaded on (I made a partition split of ~200GB macOS and ~800GB Arch Linux space on my hard drive before even getting the iso)?
And how do I mount this root partition into /mnt? when I run
mount /dev/sda2 /mnt/rootfsit claims the mount point doesn't exist. Also running
ls -a /mntshows that there isn't anything in the directory (except for . and ..). Do I have to mkdir a new something into /mnt?
Thanks again for the help
Offline
You mount the root partition (the partition you made on the Mac that should house Arch Linux) and mount it directly into /mnt i.e. assuming /dev/sda2 is the correct partition on the mac
mount /dev/sda2 /mntnow you should have your Arch root filesystem under /mnt (e.g. dirs like bin, usr, lib, home) if you now do a
arch-chroot /mntyou're "logically" located in the installed system. Then you can do
pacman -Syu broadcom-wl-dkms linux-firmware-broadcomLast edited by V1del (2025-08-19 08:04:01)
Offline
The correct partition on my mac was nvme0n1p3 because apparently my mac uses the nvme protocol. However, running
mount /dev/nvme0n1p3 /mntdidnt immediately let me run arch-chroot /mnt. Doing
lsblkdoes show that it created a mount point (labeled as /mnt) on the nvme0n1p3 partition, but arch-chroot /mnt still fails to find the directories like proc, sys, dev, run, .... Am I supposed to mkdir all of those directories and then run arch-chroot /mnt? or is mount /dev/nvme0n1p3 /mnt supposed to have created those directories and bash files by itself?
Btw, when I do
ls -a /mntnow, it shows that mount /dev/nvme0n1p3 /mnt added directories
.Spotlight-V100 .Trashes .fseventsd.
Also am I skipping a few steps right now from the installation guide? I am supposed to be in the pre-installation phase where I try to connect to the internet first (1.7) but the arch-chroot step is at 3.2
Last edited by spaghettyii (2025-08-19 13:34:15)
Offline
From the install iso, what's the output of "lsblk -f"?
Online
root@archiso ~ # lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FUSE% MOUNTPOINTS
loop0 squashfs 4.0 0 100% /run/archiso/airootfs
sda iso9660 Joliet Extension ARCH_202505_t2 2025-05-15-07-36-05-00
|--sda1 iso9660 Joliet Extension ARCH_202505_t2 2025-05-15-07-36-05-00
|--sda2 vfat FAT16 ARCHISO_EFI 6825-9965
nvme0n1
|--nvme0n1p1 vfat FAT32 EFI 5F66-17ED
|--nvme0n1p2 apfs 38a31bd5-75b7-4811-95db-00f343b1cb4e
|--nvme0n1p3 exfat 1.0 Linux Parti 6898-B8C9 744.9G 0% /mntThis is the output but does root@archiso mean that I'm in the iso right now? because that hasn't changed after the mount command. Also the label "Linux Parti" is what I named the partition for Arch from the Disk Utility app in my macOS
Offline
nvme0n1p3 is exfat, you cannot use that as the filesystem for a linux root partition.
exfat is still fat, it's called "file allocation table" because it is not a real filesystem, let alone a POSIX compliant one.
Is there literally only ".Spotlight-V100 .Trashes .fseventsd" on that partition?
ls -laR /mnt | head -n 2000 | curl -F 'file=@-' 0x0.stHowever that output doesn't look complete?
(Might be because of the specific linux console, but the tail is L-shaped, like
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1
├─nvme0n1p2
└─nvme0n1p3 Online
Oh sorry, I just typed it all out without copy pasting it from the terminal because I'm asking these questions from another device and I'm not going to try sending the copied text to this one without even knowing how to configure the network. What I posted above is the full output of the command.
And doing
ls -laR /mnt | head -n 2000 | curl -F 'file=@-' 0x0.st throws could not resolve host: 0x0.st error. I am not currently connected to the internet so if I need to be I'll have to connect to my mobile data hotspot.
But doing
ls -laR /mnt | head -n 2000 | vim - lets me look through the output with vim and I can see that in the /mnt directory, there is indeed only ".Spotlight-V100 .Trashes .fseventsd" (with . and .. ofc)
In .Spotlight-V100, it does show "Store-V2 VolumeConfiguration.plist" and Store-V2 has another directory "92228D20-553A-46CA-BARF-2AD37D4FC5E1" with a lot of files and directories in it. The directories seem to be in the form of "journals.xxx" where xxx here is like repair, scan, assisted_import_post, and more.
.Trashes is empty with just "." and ".."
.fseventsd contains fseventsd-uuid (with . and ..) and that's it.
Last edited by spaghettyii (2025-08-19 14:15:01)
Offline
Oh sorry, I just typed it all out without copy pasting it from the terminal because
Stop that. You're now using a OS for real developers™ and real developers™ don't type stuff. (We throw butterflies into the air, research that once you're don here ![]()
throws could not resolve host: 0x0.st error.
Make sure to setup the network on the install iso¹
You can then pipe any output into 0x0.sh and just post the link you get.
The data on nvme0n1p3 suggests that this has been used as media device or so from MacOS, there's no archlinux installation.
Back on topic, I start to worry that I misunderstood the OP - sorry.
You've not actually installed arch yet, you struggle to get the wifi running on the install iso in order to install arch itfp.
Adding
module_blacklist=brcmfmac,brcmsmac,b43to the kernel commandline will block the in-tree broadcom drivers, wl should™ be part of the install iso and then should™ pick up your wifi nic.
Alternatively and assuming your other device is an iPhone, see https://wiki.archlinux.org/title/Tethering (you can use your phone as wired network device)
Online
You've not actually installed arch yet, you struggle to get the wifi running on the install iso in order to install arch itfp
Yes this is what is happening right now :'(. No worries about the misunderstanding, I did get to learn a bit more of Linux in general which "builds character".
Would adding
module_blacklist=brcmfmac,brcmsmac,b43be done with the sysctl utility
sysctl kernel.module_blacklist=brcmfmac,brcmsmac,b43or another way? When I run the command it claims that
sysctl: cannot stat /proc/sys/kernel/module_blacklist: No such file or directoryAlso, how would I be able to check if the modules are properly blacklisted or not?
I think I'll try using my iPhone as a tethering device to download arch for now but I would still like to know how to connect to the internet with my home router.
Last edited by spaghettyii (2025-08-20 22:11:11)
Offline
another way
This has to happen *before* the boot at the kernel commandline editor of the bootloader (select the entry and press "e" in grub)
Online
I gave up on the installing arch linux using wifi and just did it connected to my mobile hotspot. Now that I've actually installed Arch Linux, I cannot seem to find the driver for wifi. But I think that's unrelated to this problem so I'll open another thread.
Thank you everyone for helping with this issue! I got to learn a lot and appreciate your help!
Offline
broadcom-wl is out of tree, you'll have to explicitly install that package.
Online