I'm trying to lspci > /sdc1 lspci.txt on recovery mode. What am I doing wrong? + help installing broadcom BCM4360 802.11ac network controller on debian
hardware is a nuked MacBook Pro, Intel Core i5-4278U @ 2.60GHz, model A1502 (EMC 2875), Retina Mid-2014 13"
I tried to install debian 12.5 from a live usb on this computer. On the network page of debian's installation GUI I get this message:
No Ethernet card was detected. If you know the name of the driver needed by your Ethernet card, you can select it from the list.
so I logged in to recovery mode and executed
sudo lspci -vnnk -s 03:00.0
that returns
network controller [0200]: broadcom inc. and subsidiaries BCM4360 802.11ac wireless network manager adapter [14e4:43a0] (rev 03)
there is more information that I wanted to save to a lspci.txt file on the live usb (sdc1) to share with you, but I failed the syntax.
Why I want to do this: installing debian, on the GUI's networking page there is a candidate with this exact specification (broadcom 802.11ac wireless network manager), but I cannot install it because I don't have wifi or an ethernet cable, so I'd have to download this package from this computer I'm using now and copy it to the live usb to install alongside debian 12.5. I just wanted to print the whole command just in case it's helpful.
Did you type: lspci > /sdc1 lspci.txt exactly like this? because that would pipe the output into /sdc1.
You probably want to pipe it into /your/mount/point/lspci.txt (something like that).
Stop. You do not want to do this.. While resources published on other sites may be full of information, that information is not always relevant to you. Don't blindly follow bad advice.
The "rpm" in "rpmfusion" refers to the filetype that Fedora's built-in package management system, dnf, uses.
You want to use Debian's builtin package management system, apt, which uses the "deb" filetype.
Do not follow information for other distros unless you know how to extract the bits that are relevant to your distro.
In general, I recommend following the advice from Debian's wiki or website, then debian's forums if you can't find anything there, then debian specific forums elsewhere, then other distro's wikis, then any other site in a last-ditch effort.
Now that you understand the "why," here's the "how": go back to Debian's download website and download the appropriate installation image from the bullet point that says
A larger complete installation image:
Reason being: the smaller "netinst" images are made to work generally for most people who can plug their computer into ethernet. It's made to only use the bare minimum of disk space and get the rest of the files it needs from the internet (the "net" in "netinst").
You need the installation image that come with the "drivers" (firmware) for your WiFi card already on disk, which should automatically detect your device, find the correct firmware for it, and set up the non-free-firmware repository for you.
If that doesn't work out for you, you can try manually installing using the guide on Debian's own wiki, which I found by searching for your wifi card BCM4360
As the unfortunate owner of a same-gen MBP with the same wireless card, you're looking at using the proprietary driver (I at least never had any luck with the open-source ones). Luckily, Debian do support those, and even have wiki page for them: https://wiki.debian.org/wl
Does require some extra configuration though. If you happen to have a Android phone, you should be able to use that for USB-tethering to have internet access on the device you're installing on, will make the process a lot easier (you don't even need a SIM in it, you can tether your wifi, that's what I ended up doing 😅).
For Debian I'm kind of surprised it isn't working. With the recent Debian policy change Debian now ships with non-free firmware in the installer. Theoretically it should be working.
It's a bit of a niche use case and may cause other issues, I've never done it.
The other issue is that the broadcom drivers for that wireless card are closed source, which is antithetical to debians mission to provide an entirely open system.
There are open source reverse engineered drivers (b43) and open official drivers, (brcmsmac/brcmfmac) for some older broadcom chips but only supporting up to wireless N functionality, if I remember correctly.
it appears the closed source driver package, wl, is able to provide support for one of two chipsets on the 4360 wireless card, but there is no support for the other.
If you have a phone that can provide usb tethering, you are most likely able to provide internet to your laptop that way and continue from there to install the broadcom wl driver, if it supports your chipset. The above stack exchange link and this arch wiki link should help with that.
https://wiki.archlinux.org/title/Broadcom_wireless
Someone else wrote that you’re overwriting straight into your device. Here’s how to figure out how to do it right:
Find out what block devices are available: lsblk
Lsblk will list the block devices on the computer. You can see from it weather or not the computer sees your usb and what filesystems are available on it. You might say “well of course the computer can see the usb, it booted from it!” But when you’re using a live environment the question isn’t did the computer see the usb, but does it currently see the usb.
Once you confirmed that the computer can see the usb, use df -h to find out if and where it’s mounted.
The df command shows disk filesystems and it’ll tell you which ones are mounted and where. If you see your disks file system, make note of where and skip ahead to output handling! The -h makes this command human readable by saying 32G instead of 32000000000B.
If you don’t have the file system you wanna put your output in mounted, make a directory with mkdir <directoryname> and mount the file system in it with mount /dev/<file system device> <directoryname>.
The spaces in the mount command separate the different arguments like <command> <source> <target>. You’ll be able to know your file system device from the lsblk command earlier. The mount command puts a block device somewhere in the running computers file system. Think of it like bolting something to a beam or hanging a picture on a wall.
Verify that you have access to the newly mounted file system by looking at it with ls <directoryname>. What do you see? What should you see? I don’t know.
Like I said, someone already told you that you shouldn’t overwrite directly to a device, but you can do it even better! Use the | character to send output to the tee command and give it a file as an argument like lspci | tee <directoryname>/output.txt
Tee sends output to a file in addition to the terminal as opposed to instead of the terminal window. It’s useful!
Hopefully that gets you going.
I have installed Linux on several of these laptops that need wl and as much as it’s nice to be able to do it without internet access, the easiest way is to plug up a wire and let the package manager figure out that it needs wl every time it upgrades the kernel.