1

I am trying to install Ubuntu 16.04 onto an external SSD that will be booted from when plugged into my 2013 MacBook Air. I am using 16.04 because I will be using the kinetic version of ROS.

I am following this Medium tutorial.

I am in the section titled Fixing the EFI Partition and I am trying to enter the code:

$ sudo add-apt-repository ppa:detly/mactel-utils

When I enter this into the terminal, It gives me an error that says something like

"~detly" user does not exist.

I have done some of my own research and I believe I am unable to execute this command because I am not connected to the internet. The other issue I am having is that I am unable to connect to the internet.

When I click the network drop down menu, the enable networking option is checked, but I cannot see any options for the WiFi networks. If there is any way to connect to the internet in a different way, please let me know.

Also if there are any better tutorials on how to install Ubuntu and boot from an external SSD, please let me know. I believe that the one I am following is fairly comprehensive.


@eyoung100 https://i.sstatic.net/MYmrP.png In this image, it shows what is in my pool/main folder. It does not contain the p/patch or the f/fakeroot path, so I think that might be causing something unfavorable to happen. Sorry it took me so long to get back.

Here are the contents of the make.log file that you requested:


DKMS make.log for bcmwl-6.30.223.271+bdcom for kernel 4.15.0-29-generic (x86_64)
Mon Nov 12 16:18:41 MST 2018
make: Entering directory '/usr/src/linux-headers-4.15.0-29-generic'
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, 
libelf-devel or elfutils-libelf-devel"
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M]  /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.o
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c: In function 
‘osl_os_get_image_block’:
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:1083:26: warning: 
passing argument 2 of ‘kernel_read’ makes pointer from integer without a cast [-Wint- 
conversion]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
                      ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from 
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/include/linuxver.h:65,
                 from 
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:25:
./include/linux/fs.h:2858:16: note: expected ‘void *’ but argument is of type ‘loff_t 
{aka long long int}’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:1083:37: warning: 
passing argument 3 of ‘kernel_read’ makes integer from pointer without a cast [-Wint- 
conversion]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
                                     ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from 
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/include/linuxver.h:65,
                 from 
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:25:
./include/linux/fs.h:2858:16: note: expected ‘size_t {aka long unsigned int}’ but 
argument is of type ‘char *’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:1083:42: warning: 
passing argument 4 of ‘kernel_read’ makes pointer from integer without a 
cast [-Wint- conversion]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
                                          ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from 
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/include/linuxver.h:65,
                 from 
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:25:
./include/linux/fs.h:2858:16: note: expected ‘loff_t * {aka long long int *}’ but 
argument is of type ‘int’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
  CC [M]  /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c: In function 
‘wl_init_timer’:
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:2359:2: error: 
implicit declaration of function ‘init_timer’ [-Werror=implicit-function-declaration]
  init_timer(&t->timer);
  ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:2360:10: error: 
‘struct timer_list’ has no member named ‘data’
  t->timer.data = (ulong) t;
          ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:2361:20: error: 
assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
  t->timer.function = wl_timer;
                    ^
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target 
'/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o' failed
make[1]: *** [/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o] 
Error 1
Makefile:1552: recipe for target 
'_module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build' failed
make: *** [_module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build] Error 2
make: Leaving directory '/usr/src/linux-headers-4.15.0-29-generic'
Thomas Ward
  • 78,878

1 Answers1

0

Solution

Note: There will be a lot of links in this post, so that the OP and others are free to see where my information comes from.

We need to integrate the tutorial you've followed with the Wireless Wiki for Broadcom Cards. We need to do this because the WiFi card in your MacBook Air falls under three options:

  • It's either too old to be recognized by the newer ubiquity installer.
  • The BCM360 Card I saw in the image you posted is only supported by the proprietary STA Driver.
  • You chose not to install the restricted pool during the install.

Steps to follow

  1. Read the Disclaimer, Gather the Equipment, and complete the Installation
  2. Complete the Manual Boot.
  3. Stop the Medium tutorial, and verify that the Install you just completed still contains the Install disk you used as an Install Source. This must be done as you have no access to the online repositories.
  4. Begin the commands in Section 4-2 STA-No Internet Access, and run those commands
  5. Complete the Commands in Section 4-2.
  6. Optional: Install and blacklist the other drivers for your card, following the Switching between drivers section. You may find one driver works better than the others, although I recommend the STA driver, because it was built by Broadcom.
  7. Shutdown your machine and Reboot.
  8. Go back to the tutorial you stopped in Step3, and begin again at The Manual Boot. Note that you should repeat all the steps, to verify that the options are still the same from the first time you completed The Manual Boot.
  9. Complete the tutorial.

Update

Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, 
libelf-devel or elfutils-libelf-devel"
  • sudo apt install libelf-dev

This package is old and crusty. It was meant to be compiled on an older GCC version when the old version was new, as your wireless card was new when the now older compiler was new.

  • Install an older GCC: 16.04 was built with GCC 6.x.x, but it is possible to install and activate older versions. We do that like so:

    • sudo apt install gcc-4.8
    • sudo apt install gcc-5

We then temporarily switch compilers after reading and studying very carefully, this AskUbuntu Question on update-alternatives, or if you prefer explanations: How to switch GCC version using update-alternatives.

Recompile this package using 4.8 and post a new make.log file. As for your package pools, I believe you used a minimal/network installer. Check the Ubuntu Mirrorlist, and make sure to download the full desktop iso for amd64. If the version is correct, attempt to recompile the package. If that fails the other option is to go to an older LTS release, most likely 14.04, get internet working, do a dist-upgrade to 16.04, and then repeat again if you want to go to 18.04.

eyoung100
  • 975