Jump to content
XPEnology Community

Vortex

Member
  • Posts

    211
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Vortex

  1. Here is the missed kernel modules for usb audio stripped from the DSM 7.x

    I've compiled it for DS918+ (XPEnology/Redpill DSM 7.0.1).

    To load use this sequence:

    insmod soundcore.ko
    insmod snd.ko
    insmod snd-hwdep.ko
    insmod snd-timer.ko
    insmod snd-pcm.ko
    insmod snd-seq-device.ko
    insmod snd-rawmidi.ko
    insmod snd-usbmidi-lib.ko
    insmod snd-usb-audio.ko

     

    snd-usb-audio_918p_701.zip

    • Like 2
  2. I realize the @ThorGroupdid not understand the purpose of all the synobios_ops. Here's a complete list

    struct synobios_ops {
    	struct module	*owner;
    /*01*/	int		(*get_brand)(void);
    /*02*/	int		(*get_model)(void);
    /*03*/	int		(*get_cpld_version)(void);
    /*04*/	int		(*get_rtc_time)(struct _SynoRtcTimePkt *);
    /*05*/	int		(*set_rtc_time)(struct _SynoRtcTimePkt *);
    /*06*/	int		(*get_fan_status)(int, FAN_STATUS *);
    /*07*/	int		(*set_fan_status)(FAN_STATUS, FAN_SPEED);
    /*08*/	int		(*get_sys_temperature)(struct _SynoThermalTemp *);
    /*09*/	int		(*get_cpu_temperature)(struct _SynoCpuTemp *);
    	#if defined(CONFIG_SYNO_PORT_MAPPING_V2)
    /*10*/	int		(*set_disk_led)(DISKLEDSTATUS*);
    	#else /* CONFIG_SYNO_PORT_MAPPING_V2 */
    /*10*/	int		(*set_disk_led)(int, SYNO_DISK_LED);
    	#endif /* CONFIG_SYNO_PORT_MAPPING_V2 */
    /*11*/	int		(*set_power_led)(SYNO_LED);
    /*12*/	int		(*get_cpld_reg)(CPLDREG *);
    /*13*/	int		(*set_mem_byte)(MEMORY_BYTE *);
    /*14*/	int		(*get_mem_byte)(MEMORY_BYTE *);
    /*15*/	int		(*set_gpio_pin)(GPIO_PIN *);
    /*16*/	int		(*get_gpio_pin)(GPIO_PIN *);
    /*17*/	int		(*set_gpio_blink)(GPIO_PIN *);
    /*18*/	int		(*set_auto_poweron)(SYNO_AUTO_POWERON *);
    /*19*/	int		(*get_auto_poweron)(SYNO_AUTO_POWERON *);
    /*20*/	int		(*init_auto_poweron)(void);
    /*21*/	int		(*uninit_auto_poweron)(void);
    /*22*/	int		(*set_alarm_led)(unsigned char);
    /*23*/	int		(*get_buzzer_cleared)(unsigned char *buzzer_cleared);
    /*24*/	int		(*set_buzzer_clear)(unsigned char buzzer_clear);
    /*25*/	int		(*get_power_status)(POWER_INFO *);
    /*26*/	int		(*get_backplane_status)(BACKPLANE_STATUS *);
    /*27*/	int		(*module_type_init)(struct synobios_ops *);
    /*28*/	int		(*uninitialize)(void);
    /*29*/	int		(*set_cpu_fan_status)(FAN_STATUS, FAN_SPEED);
    /*30*/	int		(*set_phy_led)(SYNO_LED);
    /*31*/	int		(*set_hdd_led)(SYNO_LED);
    /*32*/	int		(*pwm_ctl)(SynoPWMCTL *);
    /*33*/	int		(*check_microp_id)(const struct synobios_ops *);
    /*34*/	int		(*set_microp_id)(void);
    /*35*/	int		(*get_superio)(SYNO_SUPERIO_PACKAGE *);
    /*36*/	int		(*set_superio)(SYNO_SUPERIO_PACKAGE *);
    /*37*/	int		(*exdisplay_handler)(struct _SynoMsgPkt *);
    /*38*/	int		(*read_memory)(SYNO_MEM_ACCESS*);
    /*39*/	int		(*write_memory)(SYNO_MEM_ACCESS*);
    /*40*/	void	        (*get_cpu_info)(SYNO_CPU_INFO*, const unsigned int);
    /*41*/	int             (*set_aha_led)(struct synobios_ops *, SYNO_AHA_LED);
    /*42*/	int             (*get_copy_button_status)(void); // for matching userspace usage, button pressed = 0, else = 1
    /*43*/	int             (*hwmon_get_fan_speed_rpm)(SYNO_HWMON_SENSOR_TYPE *);
    /*44*/	int             (*hwmon_get_psu_status)(SYNO_HWMON_SENSOR_TYPE *, int);
    /*45*/	int             (*hwmon_get_sys_voltage)(SYNO_HWMON_SENSOR_TYPE *);
    /*46*/	int             (*hwmon_get_backplane_status)(SYNO_HWMON_SENSOR_TYPE *);
    /*47*/	int             (*hwmon_get_sys_thermal)(SYNO_HWMON_SENSOR_TYPE *);
    /*48*/	int             (*hwmon_get_sys_current)(SYNO_HWMON_SENSOR_TYPE *);
    /*49*/	int 		(*set_ok_to_remove_led)(unsigned char ledON);
    /*50*/	int		(*get_sys_current)(unsigned long*);
    /*51*/	int             (*get_disk_intf)(SYNO_DISK_INTF_INFO *);
    };

     

    • Like 1
  3. 4 hours ago, ThorGroup said:

    The current revision of the LKM causes some errors to be sent to the PMU. If anyone in the community (@Vortex? @IG-88?) has an idea of what is the source of these we will be grateful for some pointers.
     

    
    --R--R-p--R-4
    -9
    --R-r-K-8-3-8

     

    Not an errors. Just Status notifiers/Commands goes to the PIC16F1829

    According to:
     

    #define UART2_CMD_BUTTON_POWER              0x30 /* '0' */
    #define UART2_CMD_SHUTDOWN                  0x31 /* '1' */
    #define UART2_CMD_BUZZER_SHORT              0x32 /* '2' */
    #define UART2_CMD_BUZZER_LONG               0x33 /* '3' */
    #define UART2_CMD_LED_POWER_ON              0x34 /* '4' */
    #define UART2_CMD_LED_POWER_BLINK           0x35 /* '5' */
    #define UART2_CMD_LED_POWER_OFF             0x36 /* '6' */
    #define UART2_CMD_LED_HD_OFF                0x37 /* '7' */
    #define UART2_CMD_LED_HD_GS                 0x38 /* '8' */
    #define UART2_CMD_LED_HD_GB                 0x39 /* '9' */
    #define UART2_CMD_LED_HD_AS                 0x3A /* ':' */
    #define UART2_CMD_LED_HD_AB                 0x3B /* ';' */
    #define UART2_CMD_LED_HD_BREATH             0x3D /* '=' */
    #define UART2_CMD_LED_USB_ON                0x40 /* '@' */
    #define UART2_CMD_LED_USB_BLINK             0x41 /* 'A' */
    #define UART2_CMD_LED_USB_OFF               0x42 /* 'B' */
    // control by microp, echo J to ttyS1 to light on the 10G led, echo K to ttyS1 to turn off the 10G led
    #define UART2_CMD_LED_10G_LAN_ON            0x4A /* 'J' */
    #define UART2_CMD_LED_10G_LAN_OFF           0x4B /* 'K' */
    #define UART2_CMD_SWITCH_MICROP_VERSION     0x4F /* 'O' */
    #define UART2_CMD_LED_MIRROR_OFF            0x50 /* 'P' */
    #define UART2_CMD_LED_MIRROR_GS             0x51 /* 'Q' */
    #define UART2_CMD_LED_MIRROR_GB             0x52 /* 'R' */
    #define UART2_CMD_LED_MIRROR_AS             0x53 /* 'S' */
    #define UART2_CMD_LED_MIRROR_AB             0x54 /* 'T' */
    #define UART2_CMD_TOGGLE_FAN_RPS_REPORT     0x55 /* 'U' */
    #define UART2_CMD_SET_PWM_DUTY              0x56 /* 'V' */
    #define UART2_CMD_SET_PWM_FREQ              0x57 /* 'W' */
    #define UART2_CMD_BUTTON_USB                0x60 /* '`' */
    #define UART2_CMD_BUTTON_RESET              0x61 /* 'a' */
    // control by up, must echo u first! uP #1
    #define UART2_CMD_FAN_FAILURE               0x66 /* 'f' */
    // control by up, must echo EC1 first! uP #17
    #define UART2_CMD_CPUFAN_FAILURE            0x67 /* 'g' */
    #define UART2_CMD_RCPOWEROFF                0x70 /* 'p' */
    #define UART2_CMD_RCPOWERON                 0x71 /* 'q' */
    #define UART2_CMD_DISABLE_SCHEDULE_POWERON  0x72 /* 'r' */
    #define UART2_CMD_ENABLE_SCHEDULE_POWERON   0x73 /* 's' */
    #define UART2_CMD_DISABLE_FANCHECK          0x74 /* 't' */
    #define UART2_CMD_ENABLE_FANCHECK           0x75 /* 'u' */
    #define UART2_CMD_DISABLE_CPUFANCHECK       "EC0"
    #define UART2_CMD_ENABLE_CPUFANCHECK        "EC1"
    #define UART2_CMD_ENABLE_POWERBTN_WAKEUP    "SW1"
    #define UART2_CMD_DISABLE_POWERBTN_WAKEUP   "SW0"
    #define UART2_CMD_ALARM_LED_ON              "LA1"
    #define UART2_CMD_ALARM_LED_BLINKING        "LA2"
    #define UART2_CMD_ALARM_LED_OFF             "LA3"
    #define UART2_CMD_SWITCH_LED_CONTROL        "M"  //Switch the led control between status and power
    #define UART2_CMD_WOL_ENABLE                "l"
    #if defined(MY_DEF_HERE) || defined(MY_ABC_HERE)
    #define UART2_CMD_GET_UNIQUE_CMD            0x52 /* 'R' */
    #endif

     

    lets'decode:

     

    4 - Power LED on

    9 - Status LED green blink

    8 - Status LED green on

    3 - Long beep (successfully booted)

    R -GetMicroP (several attempts)

    r - Disable Sched. Poweron

    K - LAN10G LED off

    p - RC power off (?)

    - - is a delimiter

     

    It would be great if these commands (GetMicroP is most important)

    (together with /dev/ttyS1) were shimmed in the LKM!

    • Like 6
    • Thanks 2
  4. Jun на форуме иногда появляется, но активность у него нулевая. В личку не отвечает.

    Т.к. исходниками загрузчика он не делится, реверс его модуля и реализация заново для новых версий дсм может занять долгое время (скажу сразу, я этим не занимаюсь).

    Если Jun после выхода релиза не появится с новым загрузчиком, нас ждет какое то время «пробуксовка» с временем выхода решения да в и прежнем виде возможно его уже больше не будет.

    В dsm 7 rc отсутствуют те “навороты” защиты, которые были в dsm 6. Оставлена только базовая защита против модификации. Может это из за RC и ее еще добавят в последний момент, а может решили изменить политику.

    Я смог запустить RC на паре своих тестовых baremetal устройств. Пока все хорошо. Но, повторю,  это не загрузчик-автомат, он не так удобен в плане обновлений dsm и слишком специфичен к конечному девайсу.

  5. Всем привет.

    Странно, что зв год почти никто не пытается понять, отчего не ставится 6.2.4

    Все ждут Jun'a, который за два года не написал ни одного сообщения.

    Анализ ошибки "va not found", привел меня к модулю kexec, который выполняет первичный патч ядра.

    В 6.2.4 из-за каких-то других смещений, этот патч не проходит и дальнейшая загрузка не стартует.

    Разбираюсь дальше.

     

    • Like 1
  6. Обновления (не все) можно ставить штатно. Есть т.н. "опасные" обновления, затрагивающие защиту DSM, вот их ставить без обновления загрузчика нельзя.

    Какое обновление опасное, а какое безопасное обычно определяется экспериментальным путем пользователми уже в первые часы :wink:

     

    Надеюсь, я ответил на Ваш вопрос. Оффтопик прекращаем.

  7. Всем кто уже поставил 5.2-5644 и все работает, волноваться незачем. Предупреждение для тех, кто заново ставит. Сино обновила файл буквально два дня назад. demon_sl оч правильно сделал что сохранил старый pat.

    Скоро сделаем новый хагрузчик под все pat-ы.

  8. Ну насколько могу себе представить (не разбирал хрееобут) — образ включает файл параметров (sislinux) и образ загрузки (zImage) состоящий из ядра и рамдиска, чисто из моей логики если эти 30 файлов защиты и есть то только в рамдиске (больше вроде как негде) — (поправте если ошибаюсь), вот как раз это, под initramfs и имел ввиду

    Юзерспейс (hda1) патчится из рамдиска в момент загрузки. Хренобут не несет в себе готовые бинари. Он содержит только патчи и создает патченный образ системы на лету, в момент загрузки. Вот поэтому важно юзать хренобут соответствующей основной прошивке версии. Иначе, новые файлы не пропатчатся, а заменятся старыми, из кеша. Такова особенность нашего PatchEngine - он был создан как раз для того, чтобы как можно долше работать без новых патчей и переживать мелкие апдейты. На крупные апдейты все же новая версия очень рекомендуется.

    Тем кто уже обновился, если не глючит, откатываться назад не нужно. Дождитесь новой весии загрузчика и потом еще раз накатите систему поверх.

  9. "Часть старых файлов" — имеется ввиду как минимум старое ядро и initramfs :smile: ?

    Ну и как следствие, убить например систему разделов при редактировании...

    Ядро обычно неизменно на протяжении всех минорных обновлений. initramfs тоже особой роли не играет.

    а вот защищенные файлы (а их около 30 штук) благодарся системе кеширования патчей, остаются старыми.

    а это обычно самые важные файлы.

  10. Offtopic:

    Скажу сразу, я не администратор этого форума, у меня лишь минимальные модераторские полномочия для технических целей (поправить шапку итд).

    Я не слежу за порядком на форуме - у меня на это практически нет времени. Но зато я слежу за несколькими интересными с моей точки зрения темами

    и если в этих темах начинается срач - чтение всего этого это отнимает у меня время.

    Я безусловно уважаю полезные посты Bob'a на форуме, но это не даёт ему права опускаться до хамства и флуда. Прошу ничего не воспринимать на личный счет.

     

    Ontopic:

    Недавно вышла 5.2.5644. Обновляться до неё стандартно с загрузчиком 5.2.5592 не рекомендую - так система может и будет работать, но вы получите

    часть старых файлов - они останутся от 5592. Смысла в этом немного, одни недостатки. Поэтому подождите обновления хренобута до 5.2.5644.

    Оно уже тестируется.

  11. Народ! Прекращаем "майданить"!!! Сами за собой почистите оскорбления или завтра всё поудаляю! По сути, я здесь один остался действующим модератором, занимаюсь удалением спама (30-50 топиков в сутки) и занесением в черные списки этих авторов. Не хватало еще ваших разборок...

    Заблочь их обоих, plz. Достали уже.

  12. Если Автор патча пожелал распространять его через личку, значит так считает нужным и следует уважать его выбор.

    Выкладывание патча в общий доступ - проявление неуважения к нему и его трудам. Это грозит тем, что в следующий

    раз этот автор попросту не будет иметь никакого интереса делать эту работу снова. Помните, что Синолоджи тут тоже

    присутствует и постоянно закрывает лазейки в новых версиях. Есть шанс, что в скором времени, мы останемся вообще

    без камер или новой DSM, или адаптация к новым версиям будет занимать продолжительное время.

     

    Не ссорьтесь и уважайте чужой труд.

    [Флуд и оффтопик почистил]

×
×
  • Create New...