====== Open Suse 13.2 x64 заселение на mac ======
Процес начинается с разбивки жесткого, благо для этого есть BootCamp в стандартной поставке. Ей и воспользовались
Главное во время установки не перезаписать основной MBR
Я вообще загрузчик UEFI выбрал.
подробнее про это написать с OS X Yo
===== Железные проблемы =====
Это всегда весело получать проблемы из ниоткуда.
Точнее от туда, где раньше все было хорошо.
==== 1. Нету драйвера беспроводной сети ====
Таблица с поддерживаемыми ядром устройствами
https://wireless.wiki.kernel.org/en/users/Drivers/b43?highlight=%28b43%29#Supported_devices
Проверяем свое железо
lspci -nn | grep 0280
$ lspci -vnn | grep Network
03:00.0 Network controller [0280]: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)
Видим что 14e4:43a0 ядром в чистом виде не поддерживается, но wi-fi можно запустить через wl
Значит это наш путь собрать и загрузить его.
modprobe wl
Дело было так:
- скачиваем исходники модуля http://www.broadcom.com/support/?gid=1
- читаем как собирать http://www.broadcom.com/docs/linux_sta/README_6.30.223.248.txt
- собирал по этой мане https://wiki.centos.org/HowTos/Laptops/Wireless/Broadcom
в процессе смотрел эти ссылки - сделал два патча.
https://513156.bugs.gentoo.org/attachment.cgi?id=378836
https://www.centos.org/forums/viewtopic.php?f=50&t=52081
http://ubuntuforums.org/showthread.php?t=2216779&page=2
https://bugs.gentoo.org/show_bug.cgi?id=513156
http://stackoverflow.com/questions/19013337/how-to-fix-802-11-linux-sta-broadcom-driver-not-building-on-centos
http://mike-kirk.blogspot.co.il/2014/07/broadcom-wireless-not-working-on-fedora.html
http://msiyer.com/2014/11/28/opensuse-13-2-and-broadcom-bcm43228-wireless-driver-woes-in-the-linux-world/
http://linuxforums.org.uk/index.php?topic=11930.30
Первый
diff -Npru a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 06:42:08.000000000 -0400
+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2014-07-21 13:37:45.204564696 -0400
@@ -1450,7 +1450,10 @@ wl_cfg80211_get_station(struct wiphy *wi
memset(&scb_val, 0, sizeof(scb_val));
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
if (err) {
- WL_DBG(("Could not get rssi (%d)\n", err));
+ if (err != -EINVAL) {
+ /* Don't fill syslog with EINVAL errors */
+ WL_ERR(("Could not get rssi (%d)\n", err));
+ }
return err;
}
rssi = dtoh32(scb_val.val);
diff -Npru a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
--- a/src/wl/sys/wl_linux.c 2014-06-26 06:42:08.000000000 -0400
+++ b/src/wl/sys/wl_linux.c 2014-07-21 13:41:57.551456600 -0400
@@ -1651,11 +1651,7 @@ wl_ioctl(struct net_device *dev, struct
}
WL_LOCK(wl);
- if (!capable(CAP_NET_ADMIN)) {
- bcmerror = BCME_EPERM;
- } else {
- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
- }
+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
WL_UNLOCK(wl);
done1:
Второй
diff -Npru a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 06:42:08.000000000 -0400
+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-06-26 06:42:08.000000000 -0400
@@ -1841,7 +1841,26 @@ wl_notify_connect_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
wl_get_assoc_ies(wl);
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
wl_update_bss_info(wl);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ {
+ struct wl_bss_info *bi;
+ u16 bss_info_channel;
+ struct ieee80211_channel *channel;
+ u32 freq;
+
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
+
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
+
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
+ }
+#else
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
+#endif
set_bit(WL_STATUS_CONNECTED, &wl->status);
wl->profile->active = true;
}
----------------------------
this work esa
wl_link_up(wl);
wl_get_assoc_ies(wl);
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
wl_update_bss_info(wl);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
struct wl_bss_info *bi;
u16 bss_info_channel;
struct ieee80211_channel *channel;
u32 freq;
bi = (struct wl_bss_info *)(wl->extra_buf + 4);
bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
freq = ieee80211_channel_to_frequency(bss_info_channel,
(bss_info_channel <= CH_MAX_2G_CHANNEL) ?
IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
#else
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
#endif
set_bit(WL_STATUS_CONNECTED, &wl->status);
wl->profile->active = true;
Исходники и скомпилированный модуль
http://wiki.magnes.su/lib/exe/fetch.php?media=wiki:%D1%81%D0%BA%D0%BB%D0%B0%D0%B4:%D0%BE%D0%B1%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5:linux:opensuse_13.2:wifi-mac-222.tar.gz
вырезка из файла в папке с моими исходниками
Вот так это запускается при старте системы
su
cd home/will/222
modprobe lib80211
modprobe cfg80211
insmod wl.ko
создаем файлик с таким содержимым и помещаем его в загрузку системы
cd /etc/rc.d
touch mac_wifi
и заносим его в нужную стадию загрузки симлинком, скажем в rc5.d
по хорошему откомпилированные файлы надо размазать по системным папкам с либами, но меня устраивает, что они живут в ~
но с домашним путем могут быть проблемы с правами на этапе загрузки.
или лучше сделать так
cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
depmod
#rmmod bcma
#echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
modprobe wl
и сеть у нас грузится вместе с ядром.
Правда при обновлении версии - надо будет ручками перекинуть wl
==== 1a. wifi в 42.1 ====
WIFI
Качал тут
http://www.broadcom.com/support/802.11
Версию для 64
Linux® STA 64-bit driver 6.30.223.271
Проверял так
https://wireless.wiki.kernel.org/en/users/Drivers/b43
14e4:43a0 - мой вариант только wl
lspci -nn -d 14e4:
03:00.0 Network controller [0280]: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)
04:00.0 Multimedia controller [0480]: Broadcom Corporation 720p FaceTime HD Camera [14e4:1570]
Ставил по этой инструкции
http://www.broadcom.com/docs/linux_sta/README.txt
На этой системе без правок кода встало
Просто
# make clean (optional)
# make
И забираешь wl
Проверка
# modprobe lib80211
# modprobe cfg80211
# insmod wl.ko
Если без ошибок - все ок!
Но!
# rmmod b43
# rmmod brcmsmac
# rmmod ssb
# rmmod bcma
# rmmod wl
# echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist brcmsmac" >> /etc/modprobe.d/blacklist.conf
Вот это надо сделать - иначе они грузятся в ядро и мешают wl скомпилированному
Проверить что в ядро загружено
lsmod | grep "brcmsmac\|ssb\|wl\|b43\|bcma"
Финальный результат
wl 6455296 0
cfg80211 626688 1 wl
**
Загрузка при старте системы**
cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
depmod -a
echo modeprobe wl >> /etc/rc.local
uname -r - актуальная версия ядра, возможно при обновлении надо будет переместить драйвер
==== 2. Разрешение экрана HiDPI ====
Подключим репу NVIDIA и загрузим софт.
Вместо конфигурашки через xorg.conf.d создадим классический xorg.conf
для этого войдем в единоличный режим - ctrl f1
root -
init 3
и соберем конфиг
Xorg -configure
Конфиг появится в /root/xonf-conf.new
Перезагрузимся и зайдем в нормальный режим - запустим конфиг от nvidia, настроим мониторы как нам надо и сохраним все в файл.
Сравним на похожесть с созданым /root/xonf-conf.new, подредактируем, если надо и пересохраним под именем /etc/X11/xorg.conf
Вот исходный
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib64/xorg/modules"
FontPath "/usr/share/fonts/misc:unscaled"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/100dpi:unscaled"
FontPath "/usr/share/fonts/75dpi:unscaled"
FontPath "/usr/share/fonts/ghostscript/"
FontPath "/usr/share/fonts/cyrillic:unscaled"
FontPath "/usr/share/fonts/misc/sgi:unscaled"
FontPath "/usr/share/fonts/truetype/"
FontPath "built-ins"
EndSection
Section "Module"
Load "glx"
Load "vnc"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
Identifier "Card0"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Вот от Nvidia
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 340.93 (buildmeister@swio-display-x86-rhel47-03) Wed Aug 19 17:10:48 PDT 2015
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from data in "/etc/sysconfig/mouse"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "yes"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Acer P203W"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 750M"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-2"
Option "metamodes" "HDMI-0: nvidia-auto-select +1440+0, DP-2: nvidia-auto-select +0+150 {viewportin=1440x900}"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Обратный скрол мыши
Option "ZAxisMapping" "5 4"
Если мышь навороченая - отловить команды можно с помощью утилитки xev
==== 3. 100% одного CPU при подключении/отключении внешнего монитора ====
ыва
===== Обустройство =====
Подключение репозиториев
Packman
NVidia
LibreOffice
wine
steam - https://en.opensuse.org/Steam#Installation
==== Софт для работы ====
1. Keepass 2.30-1.1
Ставил из этой репы
http://download.opensuse.org/repositories/Mono:/Community/openSUSE_13.2/
2. firefox addons
==== Seafile ====
Под suse 13.2 официально нету репы актуальной.
Плюс есть проблемы с клиентами младше 3.0.4
Поэтому решил собирать последнюю стабильную.
На оф сайте есть rpm под федору
https://copr.fedoraproject.org/coprs/pkerling/seafile/
Нас интересуют пакеты src (в таком порядке)
libsearpc-1.2.2-4.x86_64
ccnet-1.4.2-13.x86_64
seafile-4.3.4-1.x86_64
seafile-client-qt-4.2.4-1.fc22.src.rpm
качаем, ставим под ПОЛЬЗОВАТЕЛЕМ
rpm -i libsearpc-1.2.2-4.x86_64.src.rpm
Пакет ставится в домашнюю папку rpmbuild
там видим следующее
BUILD
BUILDROOT
RPMS
SOURCES
SPECS
SRPMS
Советую - заинсталили libsearpc - собираем его. Только после успешного получения rpm - инсталим ccnet
Перед сборкой надо поправить spec файл
Например
BuildRequires: jansson-devel >= 2.2.1
В нашей системе называется libjansson-devel - значит надо исправить
Та же заморочка с qt qt5-qtbase-devel -> libqt5-qtbase-devel
Собрали пакет поставили его уже в систему и devel версию тоже и так по цепочке
# rpmbuild -bb nginx.spec
sudo rpm -ivh libsearpc-1.2.2-4.x86_64.rpm
В итоге имеем rpm seafile 3.4.3 для suse 13.2
--
Последний шаг по сборке seafile-applet выпадал с ошибкой, поэтому собрал его прямо из исходников, без создания пакета
cmake -DUSE_QT5=on .
make
make install
Встал без проблем
==== Seafile 42.1 ====
Seafile пришлось собирать из исходников.
По инструкции все просто, но долгова-то.
Куда продевалась иконка из трея - почитал поставил какие-то пакеты для qt4-5 tray, к сожалению, не запомнил - было 3-4 и среди них
sni-qt
+32
Осталась проблема - не вызывается меню по правой мыше в трее. Не критично, но печаль.
==== Viber 42.1 ====
С версии 6.0.1 появились проблемы с установкой.
при
rpm -ivh viber.rpm
говорит что
nothing provides libcrypto.so.10()(64bit)
nothing provides libыыд.so.10()(64bit)
Лечится символическими ссылками
sudo ln -s /lib/libcrypto.so.1.0.0 /lib/libcrypto.so.10
sudo ln -s /lib/libssl.so.1.0.0 /lib/libssl.so.10
В моем случае так
sudo ln -s /lib64/libcrypto.so.1.0.0 /lib64/libcrypto.so.10
sudo ln -s /lib64/libssl.so.1.0.0 /lib64/libssl.so.10
Но при установке это не помогло!
гугление тоже ответа не выдало.
Пробуем поставить без зависимостей и оп - все работает
rpm -ivh --nodeps viber.rpm
Пропадающий главный монитор
/home/will/.local/share/kscreen