Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- How to Run Brave Browser in FreeBSD 12.1 with Linuxulator C7
- I assume you have a working setup with sound etc... for the linuxulator and mounted devfs on /compat/linux/dev along with a link from /tmp to /compat/linux/dev/shm
- link /tmp /compat/linux/dev/shm in devfs.conf
- The next step would be installing yum package manager which you can do so by extracting first the yum rpm itself and then all dependencies manually until its satisfied.
- For Yum
- python.x86_64 2.7.5-88.el7
- cpio.x86_64 2.11-27.el7
- diffutils.x86_64 3.3-5.el7
- pygpgme.x86_64 0.3-9.el7
- pyliblzma.x86_64 0.5.3-11.el7
- python.x86_64 2.7.5-88.el7
- python-iniparse.noarch 0.4-9.el7
- python-urlgrabber.noarch 3.10-10.el7
- pyxattr.x86_64 0.5.1-5.el7
- rpm.x86_64 4.11.3-43.el7
- rpm-python.x86_64 4.11.3-43.el7
- yum-metadata-parser.x86_64 1.1.4-10.el7
- yum-plugin-fastestmirror.noarch 1.1.31-54.el7_8
- For Rpm
- libdb-utils.x86_64 5.3.21-25.el7
- coreutils.x86_64 8.22-24.el7
- curl.x86_64 7.29.0-57.el7_8.1
- libacl.x86_64 2.2.51-15.el7
- audit-libs.x86_64 2.8.5-4.el7
- bzip2-libs.x86_64 1.0.6-13.el7
- libcap.x86_64 2.22-11.el7
- libdb.x86_64 5.3.21-25.el7
- elfutils-libelf.x86_64 0.176-4.el7
- lua.x86_64 5.1.4-15.el7
- xz-libs.x86_64 5.2.2-1.el7
- nss.x86_64 3.44.0-7.el7_7
- popt.x86_64 1.13-16.el7
- rpm-libs.x86_64 4.11.3-43.el7
- libselinux.x86_64 2.5-15.el7
- zlib.x86_64 1.2.7-18.el7
- Download and extract them to /compat/linux
- After that yum only needs /dev/urandom since you have mounted devfs on /compat/linux/dev you don`t need to do anything, yum should run now.
- Now you can download the brave browser rpm from https://github.com/brave/brave-browser/releases/ (Nightly releases do work too)
- Install the rpm package using yum install local rpm
- It will complain about glibc but list the dependencies, install all required dependencies using yum.
- After dependencies are finished installing, install the rpm with nodeps flag
- rpm -ivh brave-browser-nightly-1.17.9-1.x86_64.rpm --nodeps (Like this)
- It will not run of course because of glibc
- Download glibc http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
- configure it with the prefix --prefix=/opt/glibc-2.18 and install
- patch the brave binary for the new interpreter
- Yum install patchelf
- patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/brave.com/brave-nightly/brave
- run the browser now
- #!/compat/linux/bin/sh
- SCRIPT=$(readlink -f "$0")
- USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..)
- BRAVE_PATH="/opt/brave.com/brave-nightly/brave"
- export LD_LIBRARY_PATH=/usr/local/steam-utils/lib64/fakeudev:/usr/local/steam-utils/lib64/fakepulse:/lib64/nss
- export LD_PRELOAD=/usr/local/steam-utils/lib64/webfix/webfix.so
- "$BRAVE_PATH" --no-sandbox --no-zygote --in-process-gpu --v=0 "$@"
- You can save above us /bin/brave
- You need steam-utils from https://github.com/shkhln/linuxulator-steam-utils/
- If brave complains for missing libraries at startup copy them from /usr/lib64/ to /opt/glibc-2.18/lib/
- That`s basically it.
- When you first visit netflix it will ask to download it then ask again to enable, netflix works after that.
- Sometimes when you exit the browser, there is a segfault, that`s the only issue i had so far.
- Here is the ldd output which lists dynamic dependencies of Brave Browser after everything
- linux_vdso.so.1 => (0x00007ffffffff000)
- libdl.so.2 => /opt/glibc-2.18/lib/libdl.so.2 (0x000000080c600000)
- libpthread.so.0 => /opt/glibc-2.18/lib/libpthread.so.0 (0x000000080ca00000)
- librt.so.1 => /opt/glibc-2.18/lib/librt.so.1 (0x000000080ce00000)
- libgobject-2.0.so.0 => /opt/glibc-2.18/lib/libgobject-2.0.so.0 (0x000000080d200000)
- libglib-2.0.so.0 => /opt/glibc-2.18/lib/libglib-2.0.so.0 (0x000000080d600000)
- libnss3.so => /usr/lib64/libnss3.so (0x000000080da00000)
- libnssutil3.so => /usr/lib64/libnssutil3.so (0x000000080de00000)
- libsmime3.so => /usr/lib64/libsmime3.so (0x000000080e200000)
- libnspr4.so => /usr/lib64/libnspr4.so (0x000000080e600000)
- libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x000000080ea00000)
- libatk-bridge-2.0.so.0 => /usr/lib64/libatk-bridge-2.0.so.0 (0x000000080ee00000)
- libX11.so.6 => /opt/glibc-2.18/lib/libX11.so.6 (0x000000080f200000)
- libX11-xcb.so.1 => /opt/glibc-2.18/lib/libX11-xcb.so.1 (0x000000080f600000)
- libxcb.so.1 => /opt/glibc-2.18/lib/libxcb.so.1 (0x000000080fa00000)
- libxcb-dri3.so.0 => /opt/glibc-2.18/lib/libxcb-dri3.so.0 (0x000000080fe00000)
- libXcomposite.so.1 => /opt/glibc-2.18/lib/libXcomposite.so.1 (0x0000000810200000)
- libXdamage.so.1 => /opt/glibc-2.18/lib/libXdamage.so.1 (0x0000000810600000)
- libXext.so.6 => /opt/glibc-2.18/lib/libXext.so.6 (0x0000000810a00000)
- libXfixes.so.3 => /opt/glibc-2.18/lib/libXfixes.so.3 (0x0000000810e00000)
- libcups.so.2 => /usr/lib64/libcups.so.2 (0x0000000811200000)
- libdbus-1.so.3 => /opt/glibc-2.18/lib/libdbus-1.so.3 (0x0000000811600000)
- libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x0000000811a00000)
- libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x0000000811e00000)
- libgio-2.0.so.0 => /opt/glibc-2.18/lib/libgio-2.0.so.0 (0x0000000812200000)
- libm.so.6 => /opt/glibc-2.18/lib/libm.so.6 (0x0000000812600000)
- libXrandr.so.2 => /opt/glibc-2.18/lib/libXrandr.so.2 (0x0000000812a00000)
- libgbm.so.1 => /usr/lib64/libgbm.so.1 (0x0000000812e00000)
- libasound.so.2 => /usr/lib64/libasound.so.2 (0x0000000813200000)
- libpangocairo-1.0.so.0 => /opt/glibc-2.18/lib/libpangocairo-1.0.so.0 (0x0000000813600000)
- libpango-1.0.so.0 => /opt/glibc-2.18/lib/libpango-1.0.so.0 (0x0000000813a00000)
- libcairo.so.2 => /opt/glibc-2.18/lib/libcairo.so.2 (0x0000000813e00000)
- libatspi.so.0 => /usr/lib64/libatspi.so.0 (0x0000000814200000)
- libgtk-3.so.0 => /usr/lib64/libgtk-3.so.0 (0x0000000814600000)
- libgdk-3.so.0 => /usr/lib64/libgdk-3.so.0 (0x0000000815000000)
- libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x0000000815400000)
- libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x0000000815800000)
- libc.so.6 => /opt/glibc-2.18/lib/libc.so.6 (0x0000000815c00000)
- /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x0000000001021000)
- libpcre.so.1 => /lib64/libpcre.so.1 (0x0000000816000000)
- libffi.so.6 => /lib64/libffi.so.6 (0x0000000816400000)
- libplc4.so => /lib64/libplc4.so (0x0000000816800000)
- libplds4.so => /lib64/libplds4.so (0x0000000816c00000)
- libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x0000000817000000)
- libXau.so.6 => /lib64/libXau.so.6 (0x0000000817400000)
- libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x0000000817800000)
- libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000000817c00000)
- libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000000818000000)
- libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000000818400000)
- libssl.so.10 => /lib64/libssl.so.10 (0x0000000818800000)
- libcrypto.so.10 => /lib64/libcrypto.so.10 (0x0000000818c00000)
- libavahi-common.so.3 => /lib64/libavahi-common.so.3 (0x0000000819200000)
- libavahi-client.so.3 => /lib64/libavahi-client.so.3 (0x0000000819600000)
- libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000000819a00000)
- libz.so.1 => /lib64/libz.so.1 (0x0000000819e00000)
- libsystemd.so.0 => /lib64/libsystemd.so.0 (0x000000081a200000)
- libselinux.so.1 => /lib64/libselinux.so.1 (0x000000081a600000)
- libresolv.so.2 => /lib64/libresolv.so.2 (0x000000081aa00000)
- libmount.so.1 => /lib64/libmount.so.1 (0x000000081ae00000)
- libXrender.so.1 => /lib64/libXrender.so.1 (0x000000081b200000)
- libwayland-server.so.0 => /lib64/libwayland-server.so.0 (0x000000081b600000)
- libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x000000081ba00000)
- libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x000000081be00000)
- libfreetype.so.6 => /lib64/libfreetype.so.6 (0x000000081c200000)
- libthai.so.0 => /lib64/libthai.so.0 (0x000000081c600000)
- libfribidi.so.0 => /lib64/libfribidi.so.0 (0x000000081ca00000)
- libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x000000081ce00000)
- libEGL.so.1 => /lib64/libEGL.so.1 (0x000000081d200000)
- libpng15.so.15 => /lib64/libpng15.so.15 (0x000000081d600000)
- libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x000000081da00000)
- libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x000000081de00000)
- libGL.so.1 => /lib64/libGL.so.1 (0x000000081e200000)
- libXi.so.6 => /lib64/libXi.so.6 (0x000000081e600000)
- libcairo-gobject.so.2 => /lib64/libcairo-gobject.so.2 (0x000000081ea00000)
- libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x000000081ee00000)
- libepoxy.so.0 => /lib64/libepoxy.so.0 (0x000000081f200000)
- libXinerama.so.1 => /lib64/libXinerama.so.1 (0x000000081f600000)
- libXcursor.so.1 => /lib64/libXcursor.so.1 (0x000000081fa00000)
- libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x000000081fe00000)
- libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x0000000820200000)
- libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x0000000820600000)
- libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000000820a00000)
- libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000000820e00000)
- libfreebl3.so => /lib64/libfreebl3.so (0x0000000821200000)
- libcap.so.2 => /lib64/libcap.so.2 (0x0000000821600000)
- liblzma.so.5 => /lib64/liblzma.so.5 (0x0000000821a00000)
- liblz4.so.1 => /lib64/liblz4.so.1 (0x0000000821e00000)
- libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x0000000822200000)
- libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x0000000822600000)
- libdw.so.1 => /lib64/libdw.so.1 (0x0000000822a00000)
- libblkid.so.1 => /lib64/libblkid.so.1 (0x0000000822e00000)
- libuuid.so.1 => /lib64/libuuid.so.1 (0x0000000823200000)
- libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x0000000823600000)
- libbz2.so.1 => /lib64/libbz2.so.1 (0x0000000823a00000)
- libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x0000000823e00000)
- libGLX.so.0 => /lib64/libGLX.so.0 (0x0000000824200000)
- libattr.so.1 => /lib64/libattr.so.1 (0x0000000824600000)
- libelf.so.1 => /lib64/libelf.so.1 (0x0000000824a00000)
- libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x0000000824e00000)
Add Comment
Please, Sign In to add comment